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