我想从我的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。