如何使docker拉图像在Azure DevOps管道从文件.txt?



我正试图以动态的方式在我的管道中拉图像。我有一个文件名为images。txt;(cat images.txt将返回)

cat images.txt
cassadra
python
neo4j

在azure管道中拉取图像的方法是:

代码可以工作,但不是动态的

steps:
- bash: |
y='python:3.8-slim' #I m using tha as var but would work  without that
docker pull ${y}

displayName: "Docker pull"

但是当我尝试动态执行时,它不再工作了:

这段代码可以在我的本地笔记本电脑上工作,但不能在azure管道中工作,理论上两者都应该工作

#!/bin/bash
filename='images.txt'
n=1
while read line; do
# reading each line
eval docker pull "$line"
n=$((n+1))
done < $filename

Azure管道中的是这样的:

- bash: |
#x='python:3.8-slim'
filename='images.txt'
n=1
while read line; do
echo "pulling image"
echo ${line}
n=$((n+1))
docker pull ${line}
done < $filename

但是我一直收到这个错误:所以

无效引用格式

我的理解是,在linux上工作的一切都可以在Azure管道上工作(在bash中)有什么是我没有考虑到的?

提前感谢恩里克

如何让docker在Azure DevOps管道中从file.txt吗?

对于这个问题,您可以考虑使用运行时参数,而不是从txt文件中读取。

运行时参数让你可以更好地控制哪些值可以传递给管道。使用运行时参数,您可以:

  • 在运行时为脚本和任务提供不同的值
  • 控制参数类型、允许范围和默认值
  • 使用模板表达式动态选择作业和阶段

最新更新