n1ro°
RU

Текст и данные · Инструкция

Как использовать COPY --chown в Dockerfile

Если приложение запускается не от root, файлам нужен правильный владелец. `COPY --chown=..` позволяет назначить ownersh

Редакция N1RO · Проверено

Короткий ответ

Используйте `COPY --chown=<user>:<group> <src> <dest>` или числовые UID/GID. Убедитесь, что имена пользователя и группы существуют в target stage.

Что делать

  1. Создайте пользователя при необходимости: До COPY добавьте пользователя/группу подходящим для базового image способом.
  2. Скопируйте с владельцем: Например: `COPY --chown=10001:10001 . /app`.
  3. Переключите USER: Если приложение должно работать без root, задайте `USER 10001` после подготовки файлов.
  4. Проверьте образ: Запустите контейнер и убедитесь, что процесс читает/пишет только нужные пути.

Проверка результата

  • Файлы в image имеют ожидаемый UID/GID
  • Приложение стартует под целевым пользователем без permission denied

Важно

Именованные user/group требуют разрешения имён внутри build stage; числовые UID/GID уменьшают зависимость от `/etc/passwd` и `/etc/group`.

Что учитывать

Именованные user/group требуют разрешения имён внутри build stage; числовые UID/GID уменьшают зависимость от `/etc/passwd` и `/etc/group`.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Dockerfile reference). Пример и формулировки — редакция N1RO на 2026-09-18.