Я изменяю существующий образ докера который изначально был следующим:
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, все ломается. Похоже, это связано с проблемой разрешения:
марионетка | Вызвано: 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 / fact. d
Я действительно озадачен, потому что уже был .conf
файл копируется в ту же папку до того, как я добавил свою модификацию. Кто-нибудь знает, как это изменение могло повлиять на разрешения?
Согласно страница на DockerHub код изображения должен быть идентичен код github.
Я обнаружил, что импорт изображения непосредственно во втором образе докера вместо изменения оригинала, похоже, работает:
Dockerfile:
FROM puppet/puppetserver
COPY node.sh /etc/puppetlabs/puppet/