docker-compose および docker run リファレンスによると、 user
オプションは、コンテナーで実行されているプロセスのユーザー ID (およびグループ ID) を設定します。これを 1000:1000
に設定すると 、Web サーバーはポート 80 にバインドできなくなりました。 1024 未満のポートにバインドするには、ルート権限が必要です。これは、追加された user: 1000:1000
を削除する必要があることを意味します
共有ボリュームの権限の問題を解決するには、ディレクトリの所有権を変更する必要があります。 chown 1000:1000 /path/to/volume
を実行 .これは、コンテナー内で実行することも、ホスト システム上で直接実行することもできます。変更は永続的で、すぐに有効になります (コンテナーを再起動する必要はありません)。
一般に、ボリュームはサブディレクトリにある必要があると思います。たとえば、
volumes:
- ./public:/var/www/html
正しいユーザーが ./public
を所有していることを確認してください .コンテナーを開始したときにディレクトリーが存在しない場合は、docker によって作成されます。この場合、ディレクトリは root
が所有しています 上記で説明したように、所有権を手動で変更する必要があります。
または、特権のないユーザー (user: 1000:1000
) として Web サーバーを実行することもできます。 )、サーバーにポート 8080 でリッスンさせ、ルーティングを次のように変更します
ports:
- "8080:8080"
Android Studio 3.2.1 - プロジェクトを gradle ファイルと同期できません:@NotNull パラメータ 'message' の引数 ... を null にすることはできません
ImageMagick は PDF を画像に変換する権限がありません