"docker build"正好需要1个参数

Hom*_*lli 6 docker dockerfile

我试图从特定的Dockerfile构建一个图像,并同时标记它; 我下面的在线说明docker build,但我得到了以下错误:

"docker build"正好需要1个参数

我的目录结构:

project/
    foo/
    MyDockerfile
Run Code Online (Sandbox Code Playgroud)

这是我运行的命令:

docker build -f /full/path/to/MyDockerfile -t proj:myapp

我已经尝试了上述命令的各种组合,但结果始终是上面给出的错误消息.为什么会发生这种情况 - 因为我正在遵循文档所说的内容?

bes*_*hes 16

码头工人建造。

不要错过“点”。


Krz*_*sik 15

参数-f更改Dockerfile的名称(当它与常规文件不同时Dockerfile).它不是为了传递完整的路径docker build.路径作为第一个参数.

语法是:

docker build [PARAMS] PATH

所以在你的情况下这应该工作:

docker build -f MyDockerfile -t proj:myapp /full/path/to/

或者如果你在项目目录中,你只需要使用一个点:

docker build -f MyDockerfile -t proj:myapp .

  • 感谢解释(+1),奇怪的是,当我阅读文档时,我并不是那么理解 - 这是将args传递给命令的一种相当不寻常的方式...... (3认同)
  • 太棒了,有人真的不遗余力地让这一切变得令人费解和过于复杂。让我们使用 -f 一起指定文件和路径怎么样?;-) (2认同)

gra*_*der 12

答:请对克日什托夫的回答投赞成票。没有他的提示我就迷失了。

但是B,我的贡献。

我能够使用 --file 参数的完整路径。

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 .
Run Code Online (Sandbox Code Playgroud)

我忘记了那个小“。” 在最后。

噢!

又名,不要忽视最后一个小“。” (句号)最后!!!


Sou*_*rik 8

sudo docker build -t my-app 。

不要忘记在最后添加DOT 。

参考: https: //docs.docker.com/get-started/02_our_app/