如何解决我如何 Docker COPY 作为非 root 用户?
将可选标志--chown=<user>:<group>
与ADD
orCOPY
命令一起使用。
例如
COPY --chown=<user>:<group> <hostPath> <containerPath>
--chown 标志的文档现在位于主要的Dockerfile 参考页面上。
问题 34263已合并,在v17.09.0-ce 版本中可用。
Docker 不支持COPY
作为 root 以外的用户。你需要在chown
/命令 之后 的chmod
文件。 __COPY
示例 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。
问题 34263是实现可选标志功能的问题,问题 467更新了文档。
解决方法
在构建 Docker 映像时,如何COPY
将文件放入映像中,以使生成的文件归 root 以外的用户所有?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。