问题描述
我正在使用 Azure 管道并尝试构建 docker 映像,但遇到此错误:
"docker build" requires exactly 1 argument.
我有超过 20 个 --build-arg ENV_VAL=$(ENV_VAL)
(示例),我想可能是由于构建参数的数量而引发了该错误。
有人有想法吗?
解决方法
参见this,包括--build-arg
在内的所有选项都被视为options
而不是arg
:
flags.Var(&options.buildArgs,"build-arg","Set build-time variables")
因此,对于 docker build
,只需要一个参数,即 build context
,参见 this:
options.context = args[0]
错误 "docker build" requires exactly 1 argument.
来自 here,表示您没有指定 build context
,与 --build-arg
无关。
1,可能是你的 docker 命令末尾缺少 .
引起的。
docker build -f MyDockerfile -t proj:myapp .
末尾的 .
将构建上下文指定为当前工作目录。
2、如果你传递的build-args里面有空格。它也可能导致上述错误。请检查您在 build-args 中传递的 $(ENV_VAL)
中是否有空格。为了避免这种情况。您可以将变量括在引号中。见下文:
--build-arg ENV_VAL="$(ENV_VAL)"
3,如果你复制粘贴了你的命令,还请检查你的docker命令的格式。您的命令中可能存在一些导致错误的隐藏格式。
如果您在 azure 管道中使用 docker 任务。您可以选择 Build context
的路径。选择 **
将构建上下文设置为 dockerfile 所在的文件夹。