docker - 使用循环将文件添加到 docker 映像
问题描述
我有一个脚本,它创建了几个以 part_ 开头的文件,我想在 Dockerfile 中创建一个 for 循环,以在目录中搜索以 part_ 开头的文件并将它们添加到 docker 映像中。将每个文件添加为单独的层很重要(而不是使用通配符,如ADD part_* /directory/
)。如何将文件动态添加到 docker 映像?
我想使用类似的东西RUN for f in part_*; do ADD $f /data/; done
,但我不知道如何将 ADD 合并到 bash 脚本中。
这是 Dockerfile 的示例。
FROM ubuntu:20.04
RUN apt-get update && \
rm -rf /var/lib/apt/lists/*
ADD part_aa /directory/
ADD part_ab /directory/
ADD part_ac /directory/
ADD part_ad /directory/
ADD part_ae /directory/
ADD part_af /directory/
COPY entrypoint.sh /usr/local/bin/
CMD entrypoint.sh
解决方案
你可以使用脚本来创建你的 Dockerfile;
echo "FROM ubuntu:20.04" > Dockerfile
echo "RUN apt-get update && \
rm -rf /var/lib/apt/lists/*" >> Dockerfile
for f in part_*; do echo "ADD $f /data/" >> Dockerfile; done
echo "COPY entrypoint.sh /usr/local/bin/" >> Dockerfile
echo "CMD entrypoint.sh" >> Dockerfile
推荐阅读
- python - 如何在pandas中将一个长整数对象分成2列 - python
- javascript - 在 Javascript 中将 Html 对象文本反序列化为 Json
- spring - activemq的spring核心版本更新
- typescript - Vue Apollo v4 和 Composition API 中的突变类型
- tensorflow - 如何在保留旧类性能的同时向现有对象检测器添加新类
- c - 如何使用通话返回的地址
- pdf - 将超链接添加到 PDF
- jquery - jQuery-ui 选项卡第一项保持关闭状态
- php - 如何从另一个表中获取数据并在 PHP Codeigniter 中的单个表上显示?
- c# - 在 Razorpage 上使用 MongoDB 实现 AspNetCore 自动化