Похоже на основную проблему, но пока не смог найти никаких ответов.
При использовании ADD / COPY в Dockerfile и запуске образа в linux разрешение по умолчанию для файла, скопированного в образ, составляет 644. Похоже, что владельцем этого файла является root '
Однако при запуске образа пользователь без полномочий root запускает контейнер, и любой файл, скопированный таким образом с разрешением 644, не может выполнить этот скопированный / добавленный файл, и если файл выполняется в ENTRYPOINT, он не запускается с ошибкой отказа в разрешении.
Я прочитал в одном из постов, что COPY / ADD после Docker 1.17.0+ разрешает chown, но в моем случае я не знаю, кто будет пользователем без полномочий root, поэтому я не могу установить разрешение в качестве этого пользователя.
Я также видел другую работу по добавлению / копированию файлов в другое место и использованию RUN для копирования их из временного местоположения в фактическую папку, как показано ниже. Но этот подход не работает, так как конечное изображение не имеет файлов в / otp / scm
#Installing Bitbucket and setting variables
WORKDIR /tmp
ADD atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz .
COPY bbconfigupdater.sh .
#Copying Entrypoint script which will get executed when container starts
WORKDIR /tmp
COPY entrypoint.sh .
RUN ls -lrth /tmp
WORKDIR /opt/scm
RUN pwd && cp /tmp/bbconfigupdater.sh /opt/scm \
&& cp /tmp/entrypoint.sh /opt/scm \
&& cp -r /tmp/atlassian-bitbucket-${BITBUCKET_VERSION} /opt/scm \
&& chgrp -R 0 /opt/ \
&& chmod -R 755 /opt/ \
&& chgrp -R 0 /scm/bitbucket \
&& chmod -R 755 /scm/bitbucket \
&& ls -lrth /opt/scm && ls -lrth /scmdata
Любая помощь приветствуется, чтобы выяснить, как я могу скопировать свой сценарий точки входа по желаемому пути с установленными разрешениями на выполнение.