在构建Docker映像时,如何COPY将文件添加到映像中,以便生成的文件由root以外的用户拥有?
COPY
对于v17.09.0-ce及更高版本
将可选标志--chown=<user>:<group>与ADD或COPY命令一起使用。
--chown=<user>:<group>
ADD
例如
COPY --chown=<user>:<group> <hostPath> <containerPath>
--chown标志的文档现在位于Dockerfile参考主页面上。
版本 34263已被合并,可以在v17.09.0-ce版本中使用。
对于v17.09.0-ce之前的版本
Docker不COPY以root用户身份支持。您需要chown/ 命令 后 的chmod文件。 __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参考说:
所有新文件和目录的UID和GID为0。
历史 这个功能已经通过多种GitHub上的问题跟踪:6119,9943,13600,27303,28499,发行30110。
问题34263是实现了可选标志功能的问题,问题467更新了文档。