【问题标题】:"docker build" requires exactly 1 argument(s)“docker build” 只需要 1 个参数
【发布时间】:2023-03-16 11:13:01
【问题描述】:

我正在尝试从特定的 Dockerfile 构建映像,并同时对其进行标记;我正在关注online instructions fordocker build,但出现以下错误:

“docker build”只需要 1 个参数

我的目录结构:

project/
    foo/
    MyDockerfile

这是我运行的命令:

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

我尝试了上述命令的各种组合,但结果始终是上面给出的错误消息。为什么会发生这种情况 - 正如我按照文档所说的那样?

【问题讨论】:

    标签: docker dockerfile


    【解决方案1】:

    参数 -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 传递给命令的一种相当不寻常的方式...
    • 如果您执行“docker build --help”并阅读“-f”选项,它会显示以下内容:“-f, --file string Dockerfile 的名称(默认为 'PATH/Dockerfile' )" PATH 被提及。
    • 我忘记了最后的点。非常感谢您为查明这一点付出的额外努力!
    • Sooooo,真的有人不遗余力地把这个复杂化和过度复杂化。让我们一起使用 -f 来指定文件和路径怎么样? ;-)
    • 是的,我还认为虽然默认值是PATH/Dockerfile,但提供-f 会完全覆盖它。
    【解决方案2】:

    docker 构建。

    不要错过“点”。

    【讨论】:

      【解决方案3】:

      A.请支持 Krzysztof 的回答。没有他的暗示,我迷路了。

      但是 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 .
      

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

      天啊!

      【讨论】:

        【解决方案4】:
        docker built . -t my-app
        

        码头工人构建

        【讨论】:

        • [OPTIONS] 必须在上下文之前
        猜你喜欢
        • 2021-02-06
        • 2015-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-10
        • 2016-03-29
        • 2021-12-10
        • 2017-05-06
        相关资源
        最近更新 更多