【问题标题】:"docker build" requires exactly 1 argument [duplicate]“docker build”只需要1个参数[重复]
【发布时间】:2021-02-06 15:34:54
【问题描述】:

我只是想从不同的目录构建一个 dockerfile,我尝试了以下命令

docker build -f C:/Users/XXXX/XXXX/XXXX/XXXX/XXXX/Dockerfile

docker build -f C://Users/XXXX/XXXX/XXXX/XXXX/XXXX/Dockerfile

它们都产生相同的错误

"docker build" requires exactly 1 argument.

我错过了什么吗?

【问题讨论】:

  • 您没有传递所需的上下文目录,只有 -f .../Dockerfile 选项。默认的-f 值是命名上下文目录中的Dockerfile
  • @DavidMaze 但是-f PATH 不是上下文目录吗?还有什么要补充的?
  • 否,该选项指定要使用的非默认 Dockerfile;它与所需的上下文目录选项分开。

标签: docker dockerfile docker-build docker-buildkit


【解决方案1】:

您应该提供上下文,例如当前目录:.

docker build -f C://Users/XXXX/XXXX/XXXX/XXXX/XXXX/Dockerfile -t something .

【讨论】:

  • 为什么要加“.”最后,这不是 -f 字符串部分的作用吗?
  • 你能在C:/后面加一个斜线吗? . 指定上下文,即 dockerfile 的相对路径。 Dockerfile 中的所有命令都将与当前文件夹相关
  • 所以通过 -f 我们正在更改当前文件夹?在这种情况下 ”。”在每个构建命令中都是强制性的?
  • 不,您需要在当前目录中使用-f <some Dockerfile> if you don't have dockerfile named Dockerfile`。如果您将该文件复制到当前目录,则无需指定,docker build -t something . 就足够了
【解决方案2】:

它将该行中的 C://Users/XXXX/XXXX/XXXX/XXXX/XXXX/Dockerfile 解释为 -f 开关(或选项)的值

如果你删除 -f 它应该将其解释为 Dockerfile 的路径

当我在终端输入 docker build 时,我看到了

Usage:  docker build [OPTIONS] PATH | URL | -

我不确定 -f 开关的作用,但是当我构建图像时,我很确定我会这样做

docker image build -t tagname /path/to/Dockerfile

【讨论】:

  • 第二个命令不是 Dockerfile 的路径,而是构建上下文的路径。
  • 问题是.
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2017-10-23
  • 2016-03-29
  • 2021-12-10
相关资源
最近更新 更多