Docker COPY 命令授予 777 访问复制文件的权限

Docker COPY command give 777 access to the copied file

在我的 docker 文件中,我有以下命令:

USER gerrit
COPY gerrit-default-config /var/gerrit/etc/gerrit.config

运行图片我看到文件访问号是777。 是默认值吗?除了 运行 chmod 之外,有没有办法在每次 COPY 后更改访问权限?

RUN chmod 600 /var/gerrit/etc/gerrit.config

权限是从您的主机继承的。如果该文件在复制之前位于主机上的 777 上,那么您将在容器中获得 777。

如果您不想在这里使用 777,只需在主机中将其更改为 600。

来源:https://github.com/docker/docker/issues/6333

2021 年更新:there's now a flag for ADD and COPY

# syntax=docker/dockerfile:1.3
FROM debian:buster
COPY --chmod=0644 file /path

因为文件用法写在 Dockerfile 中(即用作文档),所以在 Dockerfile 中显式权限也是有意义的,而不是在 CICD 进程中隐藏的另一个文件中。

FTR Git不存储Unix权限,只存储可执行标志。