web-dev-qa-db-ja.com

docker-compose exec composerユーザーとして

Nginx、php7-fpm、mysqlを使用したsymfonyプロジェクトのローカルマシンで完全に機能するdocker-composeセットアップがあります。

私はしばしばcomposer経由で新しいパッケージをインストールする必要があるので、次のようにphp-fpmコンテナーにコマンドを配信します:

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

問題は、すべてのパッケージをrootとしてインストールすることです。そのため、何かをインストールするたびにchownする必要があります。

フラグ「--user」が存在することは知っていますが、使用すると、次のエラーが発生します。

エラー:そのようなサービスはありません:composer

ローカルマシンユーザーとしてdocker-compose execコマンドを実行する方法はありますか?新しいcomposerインストールされたファイルとフォルダーは、ルートではなくローカルLinuxユーザーの所有権で自分自身を作成し​​ますか?

5
sh4

いくつかの調査を行った後、私が使用しているphp7-fpm画像には、www-data(実際のボックス構成と互換性がある)などの一部のユーザーが組み込まれていることがわかりました。したがって、フラグ「--user www-data」をコマンドと一緒に使用して、composerをコンテナ内で使用し、適切な権限でファイルを保持する必要がありました。

docker-compose exec --user www-data mycontainer composerインストール

5
sh4