Docker COPY 及其对权限的影响?

Docker COPY 及其对权限的影响?

我正在修改现有的 docker 镜像原文如下:

FROM puppet/puppetserver-standalone:2.7.2

ENV PUPPETDB_TERMINUS_VERSION="4.3.0"

RUN apt-get update && \
    apt-get install --no-install-recommends -y puppetdb-termini="$PUPPETDB_TERMINUS_VERSION"-1puppetlabs1 && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN puppet config set storeconfigs_backend puppetdb --section main && \
    puppet config set storeconfigs true --section main && \
    puppet config set reports puppetdb --section main

COPY puppetdb.conf /etc/puppetlabs/puppet/

COPY Dockerfile /

已经有一个命令复制到/etc/puppetlabs/puppet/我现在的同一文件夹,通过添加第二个脚本COPY如下:

COPY node.sh /etc/puppetlabs/puppet/

此更改可以编译,但是当我在 docker-compose 项目中使用该映像时,一切都会中断。这似乎与权限问题有关:

puppet | 原因:org.jruby.exceptions.RaiseException:(RuntimeError)初始化时出现8次失败:文件[/opt/puppetlabs/server/data/puppetserver/state]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/state;文件[/opt/puppetlabs/server/data/puppetserver/lib]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/lib;文件[/opt/puppetlabs/server/data/puppetserver/preview]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/preview;文件[/opt/puppetlabs/server/data/puppetserver/bucket]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/bucket; 文件[/opt/puppetlabs/server/data/puppetserver/yaml]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/yaml; 文件[/opt/puppetlabs/server/data/puppetserver/server_data]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/server_data;文件[/opt/puppetlabs/server/data/puppetserver/reports]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/reports; 文件[/opt/puppetlabs/server/data/puppetserver/facts.d]:从不存在更改为目录失败:无法设置“目录”以确保:权限被拒绝 - /opt/puppetlabs/server/data/puppetserver/facts.d

我真的很困惑,因为在我添加修改之前,已经有一个.conf文件被复制到了同一个文件夹。有人知道这个更改会如何影响权限吗?

答案1

根据DockerHub 上的页面图片代码应该与github 代码

我发现直接在第二个 docker 镜像中导入镜像而不是修改原始镜像似乎有效:

Dockerfile

FROM puppet/puppetserver

COPY node.sh /etc/puppetlabs/puppet/

相关内容