繁体   English   中英

我如何以非 root 用户的身份进行 Docker COPY?

[英]How do I Docker COPY as non root?

在构建 Docker 映像时,如何将文件COPY到映像中,以便生成的文件归 root 以外的用户所有?

对于 v17.09.0-ce 及更新版本

将可选标志--chown=<user>:<group>ADDCOPY命令一起使用。

例如

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 问题跟踪此功能: 61199943136002730328499问题 30110

问题 34263是实现可选标志功能的问题,问题 467更新了文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM