■問題の確認
以下のようにしてComposeのためのファイルを取得し、
$ git clone git@bitbucket.org:refirio/docker_wordpress.git /home/ec2-user/docker/wordpress
Dockerで起動してWordPressを実行しても、何故か日本語版にならなかった
テーマを配置するためにGitにより作成された wp-content ディレクトリ内に書き込めないのが原因みたい
同じくメディアのアップロードもできない
drwxrwxr-x 4 ec2-user ec2-user 52 5月 16 17:26 wp-content
■コンテナ内で状況を確認
Dockerにより作成されたファイルは、コンテナ内では以下のように見える
# ls -l
total 200
-rw-r--r-- 1 www-data www-data 420 Nov 30 2017 index.php
-rw-r--r-- 1 www-data www-data 19935 Jan 1 20:37 license.txt
-rw-r--r-- 1 www-data www-data 7447 Apr 8 22:59 readme.html
ec2-userにより作成されたファイルは、コンテナ内では以下のように見える
idが 1000 のユーザはいないため数字表示
# ls -l ..
total 4
drwxrwxr-x 5 1000 1000 4096 May 16 08:41 html
www-data は以下のIDを持つ
# id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
■コンテナ外で状況を確認
Dockerにより作成されたファイルは、コンテナ外では以下のように見える
(idが 33 のユーザはいないため数字で表示されている)
$ ll
合計 200
-rw-r--r-- 1 33 tape 420 12月 1 2017 index.php
-rw-r--r-- 1 33 tape 19935 1月 2 05:37 license.txt
-rw-r--r-- 1 33 tape 7447 4月 9 07:59 readme.html
■解決策
Docker: マウントしたVolumeにApacheが書き込めないとき - Qiita
https://qiita.com/suin/items/3a0361102af83d0b69aa
dockerでvolumeをマウントしたときのファイルのowner問題 - Qiita
https://qiita.com/yohm/items/047b2e68d008ebb0f001
「ユーザ・グループを1000:1000にする」という方法で対処してみる
「1000」が決め打ちなのが気にはなる(システム以外で最初に作成されたユーザが 1000 となる)が、
Linux(EC2)とWindowsの両方で大丈夫だったのでいったん良しとする
$ vi docker/wordpress/Dockerfile
… ファイルの最後に以下を追記
RUN usermod -u 1000 www-data && \
groupmod -g 1000 www-data
■再実行例
最初から実行しなおしたい場合の例
コンテナを終了し、データベースを削除し、不要なファイルを削除してからGitに一致させている
$ cd /home/ec2-user/docker/wordpress
$ docker-compose down
$ docker volume rm docker_compose_wordpress_data
$ sudo rm -rf html
$ git reset --hard origin/master