bash - docker pull - Azure DevOps 中的无效参考格式
问题描述
我正在尝试以动态方式在我的管道中提取图像。我有一个名为“images.txt”的文件,其中包含:
(cat images.txt 会返回)
cat images.txt
python:3.8-slim
neo4j
在 azure 管道中拉取图像的方法是:
该代码有效,但不是动态的:
steps:
- bash: |
y='python:3.8-slim'
docker pull ${y}
displayName: "Docker pull"
在天蓝色的管道中,我这样做:
- 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
取而代之的是docker pull ${line} 我尝试了各种替代方法,但都没有效果。我总是收到错误“无效的参考格式”我试过:
#eval docker pull "$line"
#eval docker pull $line
#eval docker pull $line
#eval docker pull "$line"
#eval docker pull "\${line}"
#docker pull "\${line}"
#docker pull $line
#docker pull "$line"
#docker pull $(line)
任何想法都将不胜感激
更新:为@Paul Rey 提供的代码
filename='images.txt'
n=1
echo "docker pull"
for line in $(cat ${filename});
do
echo ${line}
docker pull ${line}
done
它在图像没有标记时起作用,因此图像:neo4j 成功拉出但使用 python:3.8-slim 我收到“无效参考格式”的错误
解决方案
我认为docker pull ${line}
是正确的。但是你能确保images.txt
格式正确吗?我的意思是,看起来每行都有额外的空格。也许也有结束行字符。
如果每行只有一个单词,则可以选择循环:
for line in $(cat ${filename}); do
docker pull ${line}
done
推荐阅读
- sql - 包含分隔列的导入 CSV 数据集的规范化
- selenium - Selenium 脚本抛出异常为 org.openqa.selenium.UnhandledAlertException,即使没有警报
- android-studio - 我无法在 android studio 的 xml 文件的设计选项卡中预览我的应用程序
- exception - 当应用程序在 Android 中崩溃时,Xamarin.Forms 记录异常
- c# - 在 Startup.cs .net core 2.1 中加载程序集
- node.js - 读取文件和将字符串推送到缓冲区有什么区别?- 节点
- wordpress - 如何在wordpress中将注册表滑出到下一个?
- php - Apple Pay - NSS 错误 -8178
- html - 如何使 div 的高度在聊天中的所有设备上都有响应?
- c# - SoftwareBitmap 使用大量内存