+-

在构建Docker镜像时,如何将文件复制到图像中,以便生成的文件归root用户所有?
最佳答案
对于版本v17.09.0-ce和更新版本
使用可选标志–chown =< user>:< group>使用ADD或COPY命令.
例如
COPY --chown=<user>:<group> <hostPath> <containerPath>
–chown标志的文档现在位于主Dockerfile Reference page上.
问题34263已合并,可在release v17.09.0-ce获得.
适用于v17.09.0-ce之前的版本
Docker不支持COPY作为除root之外的用户.您需要在COPY命令后chown / chmod该文件.
示例Dockerfile:
from centos:6
RUN groupadd -r myuser && adduser -r -g myuser myuser
USER myuser
#Install code, configure application, etc...
USER root
COPY run-my-app.sh /usr/local/bin/run-my-app.sh
RUN chown myuser:myuser /usr/local/bin/run-my-app.sh && \
chmod 744 /usr/local/bin/run-my-app.sh
USER myuser
ENTRYPOINT ["/usr/local/bin/run-my-app.sh"]
在v17.09.0-ce之前,COPY命令的Dockerfile参考说:
All new files and directories are created with a UID and GID of 0.
历史
已通过多个GitHub问题跟踪此功能:6119,9943,13600,27303,28499,Issue 30110.
Issue 34263是实现可选标志功能的问题,Issue 467更新了文档.
点击查看更多相关文章
转载注明原文:我如何将Docker COPY作为非root用户? - 乐贴网