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 для композитора