"docker build" requires exactly 1 argument(s)
I am trying to build an image from a specific Dockerfile, and tag it at the same time; I am following the online instructions fordocker build
, but I get the following error:
"docker build" requires exactly 1 argument(s)
My directory structure:
project/
foo/
MyDockerfile
This is the command I run:
docker build -f /full/path/to/MyDockerfile -t proj:myapp
I have tried various combinations of the above command, but the results are always the error message given above. Why is this happening - as I am following what the documentation says?
Solution 1:
Parameter -f
changes the name of the Dockerfile (when it's different than regular Dockerfile
). It is not for passing the full path to docker build
. The path goes as the first argument.
Syntax is:
docker build [PARAMS] PATH
So in your case, this should work:
docker build -f MyDockerfile -t proj:myapp /full/path/to/
or in case you are in the project directory, you just need to use a dot:
docker build -f MyDockerfile -t proj:myapp .
Solution 2:
docker build .
DO NOT MISS "THE DOT".
Solution 3:
A. Please upvote Krzysztof's answer. I was lost without his hints.
But B, my contribution.
I was able to use a full path for the --file argument.
docker build --build-arg JAR_FILE="/source/java/mystuff/build/libs/mything-1.0.10-SNAPSHOT.jar" --file /full/path/to/MyDockerfile -t proj:myapp .
I had forgotten that little "." at the end.
D'oh!
Aka, do NOT overlook the last little "." (period) at the end !!!