我如何作为非root的docker复制?
在构buildDocker镜像时,如何将文件COPY
到镜像中,以便生成的文件由除root以外的用户拥有?
更新 – 将新标志添加到ADD和COPY命令
问题34263已经合并,并在发布v17.09.0-ce中可用。
解决这个问题的方法是在ADD
和COPY
命令中添加--chown=<user>:<group>
作为可选标志。
文档仍在编制中,但可以在这里find初步的文档。
作为除root以外的用户,Docker目前不支持COPY
。 您需要在COPY
命令之后chown
/ chmod
文件。
示例Dockerfile:
from centos:6 RUN groupadd -r slcs && 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"]
我一直试图通过多个GitHub问题来进行讨论: 6119,9943,13600,27303,28499
在这篇文章发行时,30110号似乎是最新的,没有解决scheme。 因此,看起来用普通的docker命令做这件事情还是不可能的。
另外, COPY
命令的Dockerfile Reference仍然会这样说
所有新的文件和目录都是使用UID和GID创build的。