やりたいこと
今まで、 docker-compose up -d
後に、コンテナと共有したディレクトリをコンテナ内で chown を実行して所有グループ・所有者を変更していました。
これが面倒で、時々忘れてしまいますので、なんとか楽にできないだろうかと思いました。
わかったことまとめ
docker compose up
して共有ディレクトリをマウントする時に権限が決まる (ようだ) 。したがって、 Dockerfile では対処できない。コンテナ起動時に対処することになる。
試行錯誤
docker-compose.yml
ので試したこと。
#command: bash -c "chown -R www-data:www-data /var/www/html/ && apache2-foreground"
#command: bash -c "apache2-foreground"
#command: apache2-foreground
としてみた。
- うまくいった。 ->
command: apache2-foreground
- ダメ。 -> それ以外。
よくわからないのが、 command: bash -c "apache2-foreground"
がダメということです。 403 Fobbiden となっていました。
参考ページ
- Docker – dockerのvolume先のパーミッションを777にする方法|teratail
- DockerfileのCMDおよびdocker-compose.ymlで複数のbashコマンドを実行させる方法 – Qiita
- wordpress – Docker Hub
- wordpress/Dockerfile at 17f48a156dac1308a07796ed41ac6bca007308e9 · docker-library/wordpress
おわりに
いったん諦めようと思います。
Dockerfile や Docker Compose の ENTRYPOINT や CMD をよく理解できれば、解決につながるのではないかと予想しています。
以上です。