[解決済み] Docker-compose マウントされたボリュームにユーザーとグループを設定する
2022-05-15 03:36:04
質問
docker-composeでapacheのイメージにボリュームをマウントしようとしています。問題は、私のドッカー内のapacheは、以下の場所で実行されていることです。
www-data:www-data
の下で実行されていますが、マウントされたディレクトリは
root:root
. マウントされたディレクトリのユーザーを指定するにはどうしたらよいですか?
コマンドを実行しようとしたのですが
setupApacheRights.sh
.
chown -R www-data:www-data /var/www
と表示されますが
chown: changing ownership of '/var/www/somefile': Permission denied
services:
httpd:
image: apache-image
ports:
- "80:80"
volumes:
- "./:/var/www/app"
links:
- redis
command: /setupApacheRights.sh
マウントするユーザを指定できるようにしたいです。方法はありますか?
どのように解決するのですか?
まず
www-data
ユーザーの uid を決定します。
$ docker exec DOCKER_CONTAINER_ID id
uid=100(www-data) gid=101(www-data) groups=101(www-data)
次に、dockerホスト上で、uid(この例では100)を使ってマウントしたディレクトリの所有者を変更します。
chown -R 100 ./
ダイナミックエクステンション
もし、あなたが
docker-compose
を使うなら、このようにした方がいいかもしれません。
$ docker-compose exec SERVICE_NAME id
uid=100(www-data) gid=101(www-data) groups=101(www-data)
$ chown -R 100 ./
ワンライナーで入れることができます。
$ chown -R $(docker-compose exec SERVICE_NAME id -u) ./
は
-u
フラグは
uid
を標準出力に出力します。
編集:CLIフラグのケーシングミスを修正しました。jcalfee314 さんありがとうございます。
関連
-
[解決済み] Docker-Composeを使用して、複数のコマンドを実行する方法
-
[解決済み] ボリュームに単一ファイルをマウントする方法
-
[解決済み】ビルド中にDockerfileでホストボリュームをDockerコンテナにマウントする方法
-
[解決済み] Docker Compose: そのようなイメージはありません
-
[解決済み] docker イメージの sha256 コードはどこで確認できますか?
-
[解決済み] Dockerの実行と作成
-
[解決済み] Docker-compose マウントされたボリュームにユーザーとグループを設定する
-
[解決済み] Linuxでdockerを停止する方法
-
[解決済み] Docker CMDを複数回使用して、複数のサービスを実行することができないのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン