Відповіді:
Для версій 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, Довідкова посилання для COPY
команди сказала:
Усі нові файли та каталоги створюються з UID та GID 0.
Історія Ця функція відстежена через кілька випусків GitHub: 6119 , 9943 , 13600 , 27303 , 28499 , випуск 30110 .
Випуск 34263 - це проблема, в якій реалізована додаткова функція прапора, а випуск 467 оновив документацію.
chown
на 40 МБ файлів).