Как при создании образа Docker COPY
добавить файл в образ, чтобы полученный файл принадлежал пользователю, отличному от root?
источник
Как при создании образа Docker COPY
добавить файл в образ, чтобы полученный файл принадлежал пользователю, отличному от root?
Для версий v17.09.0-ce и новее
Используйте необязательный флаг --chown=<user>:<group>
с командами ADD
или COPY
.
Например
COPY --chown=<user>:<group> <hostPath> <containerPath>
Документация для флага --chown теперь находится на главной странице справки Dockerfile .
Выпуск 34263 был объединен и доступен в выпуске v17.09.0-ce .
Для версий старше v17.09.0-ce
Docker не поддерживает COPY
как пользователь кроме root. Вам нужно chown
/ chmod
файла после в COPY
команде.
Пример Dockerfile:
from centos:6
RUN groupadd -r myuser && adduser -r -g myuser myuser
USER myuser
#Install code, configure application, etc...
USER root
COPY run-my-app.sh /usr/local/bin/run-my-app.sh
RUN chown myuser:myuser /usr/local/bin/run-my-app.sh && \
chmod 744 /usr/local/bin/run-my-app.sh
USER myuser
ENTRYPOINT ["/usr/local/bin/run-my-app.sh"]
До v17.09.0-ce ссылка на Dockerfile для COPY
команды гласила:
Все новые файлы и каталоги создаются с UID и GID 0.
История Эта функция отслеживалась в нескольких выпусках GitHub: 6119 , 9943 , 13600 , 27303 , 28499 , выпуск 30110 .
Проблема 34263 - это проблема, которая реализовала необязательную функциональность флага, а проблема 467 - обновление документации.
chown
с 40 МБ файлов).