Azure Docker:构建arg';你能吃什么?

Azure Docker:构建arg';你能吃什么?,azure,docker,azure-devops,azure-pipelines,docker-build,Azure,Docker,Azure Devops,Azure Pipelines,Docker Build,我正在使用Azure管道并尝试构建docker映像,但遇到以下错误: "docker build" requires exactly 1 argument. 我有20多个--build argENV_VAL=$(ENV_VAL)(示例),我想可能是由于build arg的数量太多而引发了这个错误 有人有主意吗?看,所有选项包括--build arg都被视为选项而不是arg: flags.Var(&options.buildArgs, "build-arg&

我正在使用Azure管道并尝试构建docker映像,但遇到以下错误:

"docker build" requires exactly 1 argument.
我有20多个--build arg
ENV_VAL=$(ENV_VAL)
(示例),我想可能是由于build arg的数量太多而引发了这个错误

有人有主意吗?

看,所有选项包括
--build arg
都被视为
选项
而不是
arg

flags.Var(&options.buildArgs, "build-arg", "Set build-time variables")
因此,对于
docker build
,只需要一个参数,即
buildcontext
,请参阅:


错误
“docker build”只需要1个参数。
来自,表示您没有指定
构建上下文
,与
--build arg

1无关,这可能是由于docker命令末尾缺少
导致的

docker build -f MyDockerfile -t proj:myapp .
末尾的
指定生成上下文为当前工作目录

2,如果传递的生成参数中有空间。它也可能导致上述错误。请检查您在生成参数中传递的
$(ENV_VAL)
中是否有空格。为了避免这种情况。可以将变量用引号括起来。见下文:

 --build-arg ENV_VAL="$(ENV_VAL)"
3,如果您复制并粘贴了您的命令,请检查docker命令的格式。命令中可能存在导致错误的隐藏格式

如果您在azure管道中使用docker任务。您可以选择
生成上下文的路径。选择
**
将生成上下文设置为dockerfile所在的文件夹


为了了解更多信息,您是否可以粘贴整个
docker build
命令,但出现完全错误。是否确保提供生成上下文作为最终参数?这个错误以前出现过。就像@mchawre说的,如果可能的话,你能分享你的实际命令吗?将build arg值用双引号括起来“有效”。@HarveyConnor太好了,它解决了这个问题。你能接受上面的答案吗?因为它有效。谢谢!
 --build-arg ENV_VAL="$(ENV_VAL)"