【问题标题】:Docker COPY command give 777 access to the copied fileDocker COPY 命令授予 777 对复制文件的访问权限
【发布时间】:2015-12-24 00:11:58
【问题描述】:

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

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

运行镜像我看到文件访问号是777。 是默认值吗?除了在每次 COPY 后运行 chmod 之外,还有其他方法可以更改访问权限吗?

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

【问题讨论】:

  • Permission 777 绝对不是默认值。你本地文件的权限是什么? ls -l gerrit-default-config

标签: linux docker file-access


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    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 权限,只存储可执行标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 2013-09-20
      • 1970-01-01
      相关资源
      最近更新 更多