У меня есть установка docker-compose, отлично работающая на моем локальном компьютере для моих проектов symfony с nginx, php7-fpm и mysql.
Мне часто нужно устанавливать новые пакеты через composer, поэтому я просто доставляю команду своему контейнеру php-fpm следующим образом:
docker-compose exec my-php-fpm-container composer install
Проблема в том, что все пакеты устанавливаются как root, поэтому мне приходится каждый раз устанавливать что-то. 1259] Я знаю, что флаг "--user" существует, но если я его использую, он выдает следующую ошибку:
ОШИБКА: такой службы нет: composer
Есть ли способ запустить команду docker-compose exec от имени пользователя локального компьютера, чтобы файлы и папки, установленные новым композитором, создавались с моим локальным владельцем Linux, а не с правами root?
Проведя небольшое исследование, я только что понял, что образ php7-fpm, который я использую, имеет некоторые встроенные пользователи, такие как www-data (совместимые с моей фактической конфигурацией коробки). Поэтому мне просто пришлось использовать флаг «--user www-data» вместе с командой, чтобы использовать композитор внутри контейнера и сохранить файлы с нужными разрешениями.
docker-compose exec --user www-data mycontainer composer install