docker-compose exec composer как пользователь

У меня есть установщик docker-compose, который отлично работает на моей локальной машине для моих проектов symfony с nginx, php7-fpm и mysql.

Мне часто нужно устанавливать новые пакеты через composer, поэтому я просто передаю команду в свой контейнер php-fpm следующим образом:

docker-compose exec my-php-fpm-container composer install

Проблема в том, что все пакеты устанавливаются с правами суперпользователя, поэтому мне приходится каждый раз, когда я что-то устанавливаю.

Я знаю, что флаг "--user" существует, но если я его использую, он выдаст следующую ошибку:

ОШИБКА: Нет такого сервиса: композитор

Есть ли способ запустить команду docker-compose exec от имени пользователя локальной машины, чтобы новые файлы и папки, установленные новым композитором, создавались сами с моим локальным владельцем Linux, а не с правами root?

1 ответ

Решение

Проведя некоторые исследования, я только что понял, что в образе php7-fpm, который я использую, есть некоторые встроенные пользователи, такие как www-data (совместимые с моей реальной конфигурацией коробки). Поэтому мне просто нужно было использовать флаг "--user www-data" вместе с командой, чтобы использовать компоновщик внутри контейнера и сохранять файлы с нужными разрешениями.

docker-compose exec --user www-data установить mycontainer для композитора

Другие вопросы по тегам