我有一个用于准备 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
该脚本不需要删除自身。