【问题标题】:I keep getting the "docker build" requires exactly 1 argument(s) error我不断收到“docker build”需要恰好 1 个参数错误
【发布时间】:2017-05-06 03:24:30
【问题描述】:

首先,我正在尝试关注这个guide

到目前为止,我已经启动并运行了主机,但我被困在这一点上。我已经安装了 windowsservercore 映像,我安装了 IIS 映像并将其标记为“windowsserveriis”。现在我需要安装 ASP.NET 4.5,我使用以下命令

docker build –t windowsserveriisaspnet .

我应该补充一点,我为我的 Docker 映像创建了一个文件夹。所以我有一个 C:\dev\TestProject\DockerImages 和每个 Dockerfile 的文件夹。现在,我对此有点不确定,因为该指南从未提及如何实际创建文件,所以我想我会为了安全起见将它们分开(并且也可以将它们命名为“Dockerfile”以避免混乱)。

无论如何,上面的命令打印出以下错误信息:

docker : "docker build" 只需要 1 个参数。

在 line:1 char:1

docker build –t windowsserveriisaspnet .

我的 Dockerfile 如下所示:

来自 windowsserveriis

运行 dism /online /enable-feature /featurename:IIS-ASPNET45

我最初的想法是我忘记了最后的点,但事实并非如此。我还尝试用 '--file="DockerfileASPNET"' (我重命名文件)替换点。但是似乎没有任何效果。

那么,我错过了什么?提前谢谢..

【问题讨论】:

  • @alldani 他的代码中已经有.,因此答案不相关。 @kasper 你从哪里运行命令?您是否在为存放 Dockerfile 而创建的文件夹中?还要确保你的 Dockerfile 被命名为 Dockerfile 并且大小写正确
  • 但这并不能真正回答我的问题。就像我说的,我已经检查了一个缺失的点。
  • 还有更多答案。另外,你应该用谷歌搜索它,如果你尝试过这个问题,你应该提到它。正如您现在所知道的那样,它将节省每个人的时间。
  • @MikeGaruccio 我 cd'ed 到正确的文件夹,然后运行带有点的命令。

标签: asp.net powershell docker dockerfile


【解决方案1】:

我遇到了同样的问题。我错过了命令末尾的小句号( . )。 我从官方 docker 文档中复制粘贴了命令。 时期 ( . ) 在命令的末尾告诉 Docker 使用 shell 的当前工作 目录作为构建上下文。 确保在命令末尾包含句点 (.),并确保运行 来自包含 Dockerfile 和应用程序代码的当前工作目录的命令。

【讨论】:

  • 别忘了在末尾加上句点 (.) ;)
  • NUB 错误!哈哈! (我也这样做了!)
  • 是的,但它不仅是结尾的 (.),而且结尾的空格和 (.) 对我有用。
【解决方案2】:

Docker 构建需要 docker 文件。

注意:您必须提供存储构建的 Docker 映像文件的 URL 或路径。您错过了提供 URL 或路径

语法docker image build OPTIONS <url or path>

求解命令(两种方式)

  1. docker image build -f <dockerfile> <url or path>
  2. docker build -f <dockerfile> <url or path>

例如,docker build --file ./Dockerfile.txt .

【讨论】:

    【解决方案3】:

    当我复制粘贴给定的命令时,我也遇到了同样的问题。但是,当我输入下面给出的相同命令时,它就起作用了。

    $ docker image build -t python-hello-world .
    

    【讨论】:

    • 如果您希望您的答案在将来更有帮助,您应该尝试包括为什么它会这样工作。此外,您可以将命令放在编辑器中的代码块中,以便格式良好。
    【解决方案4】:

    原来我的命令中有一些隐藏的格式。如果我手动写出来,而不是复制/粘贴,它就可以了。所以我想这里学到的教训是;检查你的复制。

    【讨论】:

    • 在尝试了一切之后,在 Powershell 中唯一对我有用的方法就是将其输入
    【解决方案5】:

    如果 .Dockerfile 在您的当前目录中,请使用:

    docker build –t windowsserveriisaspnet -f ./.Dockerfile .

    所以你指向特定文件 -f ./.Dockerfile 并且需要使用 . (最后点)。

    【讨论】:

      【解决方案6】:

      试试这个格式

      docker build --pull -t windowsserver . -f <path where dockerfile is present>
      

      【讨论】:

        【解决方案7】:

        基本上我以前认为使用开关-f或--file,它不需要Dockerfile Path的额外输入。但它最后需要它。所以 cmd 应该是

        "$docker build --tag REPO-NAME:TAG-NAME --file FILEPATH DIRPATH

        【讨论】:

          【解决方案8】:

          在撰写本文时,此处尚未记录(复制和粘贴)错误 - 错误位于 em/en 破折号字符中。

          其中一个命令是错误的。

          这有错误的字符,即-

          docker build –t windowsserveriisaspnet .

          虽然这是正确的,即 -

          docker build -t windowsserveriisaspnet .

          【讨论】:

            【解决方案9】:

            对我来说,检查标签值给出了答案。一些值包含空格字符。将该值放在 " " 之间解决了这个问题。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-05-13
              • 1970-01-01
              • 2023-03-16
              • 1970-01-01
              • 1970-01-01
              • 2018-02-10
              • 2016-12-28
              相关资源
              最近更新 更多