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