You need to point to the directory instead. You must not specify the dockerfile.
docker build -t ubuntu-test:latest .
does work.
docker build -t ubuntu-test:latest ./Dockerfile
does not work.
You can also run docker build with -f
option
docker build -t ubuntu-test:latest -f Dockerfile.custom .
docker build
commandThe basic syntax of docker's build command is
docker build -t imagename:imagetag context_dir
The context is a directory and determines what the docker build process is going to see: From the Dockerfile's point of view, any file context_dir/mydir/myfile
in your filesystem will become /mydir/myfile
in the Dockerfile and hence during the build process.
If the dockerfile is called Dockerfile
and lives in the context, it will be found implicitly by naming convention.
That's nice, because it means you can usually find the Dockerfile in any docker container immediately.
If you insist on using different name, say "/tmp/mydockerfile", you can use -f
like this:
docker build -t imagename:imagetag -f /tmp/mydockerfile context_dir
but then the dockerfile will not be in the same folder or at least will be harder to find.
To specify a Dockerfile
when build, you can use:
docker build -t ubuntu-test:latest - < /path/to/your/Dockerfile
But it'll fail if there's ADD
or COPY
command that depends on relative path. There're many ways to specify a context
for docker build
, you can refer to docs of docker build for more info.
I face the same issue. I am using docker version:17.09.0-ce
.
I follow below steps:
$ sudo docker build -t ubuntu-test:latest .
It resolved issue and image created successsfully.
Note: build command depend on docker version as well as which build option we are using. :)
It's simple, whenever Docker build is run, docker wants to know, what's the image name, so we need to pass -t : . Now make sure you are in the same directory where you have your Dockerfile and run
docker build -t <image_name>:<version> .
Example
docker build -t my_apache:latest .
assuming you are in the same directory as your Dockerfile otherwise pass -f flag and the Dockerfile.
docker build -t my_apache:latest -f ~/Users/documents/myapache/Dockerfile
One of the reasons for me getting an error was the file name make sure the file name is Dockerfile So i figured it out, hope it might help someone.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With