我试图从一个特定的Dockerfile构建一个镜像,同时标记它;我正在按照docker build
的联机说明进行操作,但收到以下错误:
“docker build”需要1个参数
我的目录结构:
project/
foo/
MyDockerfile
这是我运行的命令:docker build -f /full/path/to/MyDockerfile -t proj:myapp
我尝试了上述命令的各种组合,但结果总是上面给出的错误消息。为什么会发生这种情况-因为我正在遵循文档中的说法?
6条答案
按热度按时间b0zn9rqh1#
参数
-f
更改Dockerfile的名称(当它不同于常规Dockerfile
时)。它不是用来传递docker build
的完整路径的。路径作为第一个参数。语法是:
docker build [PARAMS] PATH
所以在你的情况下,这应该起作用:
docker build -f MyDockerfile -t proj:myapp /full/path/to/
或者如果你在项目目录下,你只需要使用a点:
docker build -f MyDockerfile -t proj:myapp .
6qftjkof2#
docker build .
不要错过“点”。
roqulrg33#
答:请投票支持Krzysztof的答案。没有他的暗示,我不知所措.
B、我的贡献
我可以为--file参数使用完整路径。
我忘了最后那个小小的“.”。
哦!
“不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要,不要。!!
vyswwuz24#
sudo docker build -t my-app .
别忘了在末尾加上DOT。
参考:https://docs.docker.com/get-started/02_our_app/
wmomyfyw5#
如果生成参数中有空格,也可能收到此错误。例如:
生成
"docker build" requires exactly 1 argument.
错误消息,并删除等号周围的空格工作正常。
vnjpjtjt6#
如果你正在将你的构建从shell脚本转换为i.e. gitlab-ci,由于不同的多行语法,你可能会遇到这个问题:
即shell脚本可能有:
wherease gitlab ci不需要多行结尾的反斜杠:
如果保留尾部的反斜杠,它将成为命令行的一部分,并被视为参数。