Docker Build COPY/ADD preserve Owner/Group



我想从我的docker构建上下文中的文件夹复制所有文件。文件夹中的文件混合了不同的所有者和组(例如UID=400 GUID=800等),我需要保留这些文件(我还需要保留时间戳等)

所以基本上我需要一个1:1的文件拷贝到我的docker镜像。

当我使用ADD/COPY时,它不会保留文档中也声明的任何所有者/组id。(默认为0)

我已经做了一个使用rsync (-a)与localhost的解决方案,但这不是一个理想的解决方案。我也可以使用docker cp命令并提交映像,但我想在我的dockerfile中使用它。

有什么办法可以做到吗?(Docker Version 20.10.16-r2)

编辑:我也试过

RUN --mount=type=bind,source=myfiles,target=/myfiles cp -ar /myfiles/* /container_target/

但这并不保留所有者等,也不

编辑:我使用DOCKER_BUILDKIT=1

试试这个

COPY --chown=docker:docker source /path/to/destination

调整你的问题,如果不像预期的那样工作,请告诉我们。

你可以将所有的文件放到tar-ball中,然后使用

ADD tarball.tar.gz .

在你的Dockerfile。Docker将自动从tar-ball中提取文件,并保留原始文件的所有者id。

最新更新