我正在修改现有的 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/