[英]How do I Docker COPY as non root?
在构建 Docker 映像时,如何将文件COPY
到映像中,以便生成的文件归 root 以外的用户所有?
对于 v17.09.0-ce 及更新版本
将可选标志--chown=<user>:<group>
与ADD
或COPY
命令一起使用。
例如
COPY --chown=<user>:<group> <hostPath> <containerPath>
--chown 标志的文档现在位于主Dockerfile 参考页面上。
问题34263已合并并在版本 v17.09.0-ce 中可用。
对于早于 v17.09.0-ce 的版本
Docker 不支持以 root 以外的用户身份进行COPY
。 您需要在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 参考说:
所有新文件和目录都使用 0 的 UID 和 GID 创建。
历史已通过多个 GitHub 问题跟踪此功能: 6119 、 9943 、 13600 、 27303 、 28499 、问题 30110 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.