IT序号网

Dockerfile COPY 和 RUN 在一层

shanyou 2025年01月19日 编程语言 16 0

我有一个用于准备 Docker 镜像的脚本。我在 Dockerfile 中有这个:

COPY my_script / 
RUN bash -c "/my_script" 
my_script文件包含我不希望在图像中的 secret (完成后它会自行删除)。

问题是尽管被删除了文件仍然保留在图像中,因为 COPY 是一个单独的层。我需要的是 COPY 和 RUN 影响同一层。

如何复制和运行脚本以便两个操作都影响同一层?

请您参考如下方法:

从 18.09 开始,您可以使用 docker build --secret 在构建过程中使用 secret 信息。 secret 被安装到构建环境中,并且不会存储在最终镜像中。

RUN --mount=type=secret,id=script,dst=/my_script \ 
    bash -c /my_script 
$ docker build --secret id=script,src=my_script.sh 

该脚本不需要删除自身。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!