繁体   English   中英

在 azure devops 管道 docker 构建任务中将文件内容作为构建参数传递

[英]Pass file content as build argument in azure devops pipeline docker build task

我想使用 --build-arg 在 docker build 命令中将我的文件内容作为构建参数传递。 我在终端中使用以下命令,它工作正常

docker build -t 示例 --build-arg PRIVATE_KEY="$(cat /home/key)" 。

但是,当我在 azure devops 管道 docker build 任务中尝试相同的事情并在参数框中传递--build-arg PRIVATE_KEY="$(cat /home/key)" ,它会采用原样的值,即$(cat /home/key)而不是执行 cat 命令。

我不认为这是 docker build 任务的问题。 它适用于命令行任务的原因可能是因为当您在本地机器上或在命令行任务中运行 docker build 命令时,命令行首先会评估“ $() ”中包含的内容,然后其值为传递给 docker ARG 但是对于 docker build 任务,它直接调用了 docker.exe,因此无法计算“ $() ”中的表达式。

由于您已经找到了使用命令行任务的解决方法。 我建议您使用命令行任务而不是 docker 任务。

我也尝试了@4c74356b41 的建议。 我定义了一个管道变量key ,并将键的值放入这个变量中,并在 docker build 任务中引用这个变量。

当我在参数框中放置--build-arg PRIVATE_KEY="$(key)"时,我在下面为我工作。

  • 多变的在此处输入图片说明

  • Docker 构建任务

在此处输入图片说明

您需要将此值放入一个变量中并引用一个变量,或者使用脚本步骤从文件的内容中创建一个变量并引用该变量。

另一种方法是将密钥作为上下文传递给 docker build,并在构建中提取该值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM