作者:Steven | 来源:互联网 | 2023-01-31 11:13
在构建Docker镜像时,如何COPY
将文件放入图像中,以便生成的文件归root用户所有?
1> FGreg..:
对于版本v17.09.0-ce和更新版本
将可选标志--chown=:
与ADD
或COPY
命令一起使用.
例如
COPY --chown=:
--chown标志的文档现在在Dockerfile主参考页面上生效.
问题34263已合并,可在v17.09.0-ce版本中获得.
适用于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参考说:
使用UID和GID为0创建所有新文件和目录.
历史
这个功能已经通过多种GitHub上的问题跟踪:6119,9943,13600,27303,28499,发行30110.
问题34263是实现可选标志功能的问题,问题467更新了文档.
令人沮丧的是,由于overlay2已成为默认的存储驱动程序,因此处理大量文件的速度变得异常缓慢