Назад | Перейти на главную страницу

Docker COPY и влияет на разрешения?

Я изменяю существующий образ докера который изначально был следующим:

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/