雑多に書きたくなると、Qiitaとかではなく自分で好きにできる場所が欲しいよね。。 ということで、AWS Lightsail + Grav で場所をちゃちゃっと錬成しました。
嘘です。全然ちゃっちゃと出来なくて沼ったので、メモを残します...Σ(´□`;)
Dockerを忘れすぎている...
出来合いの Dockerfile で docker run するだけ、そう思っていた時期が私にもありました。 いやもう、想像以上にパーミッション沼につかりましたね...
雛形はこれ https://github.com/getgrav/docker-grav を使ったが、正解までの道のりが長かった。。
正解ルート
1. 初回、マウントせずにコンテナ起動
docker run -d -p 8000:80 --restart always grav:latest
2. ユーザ/グループの同期
コンテナ側の www-data ユーザのユーザID/グループIDを調べる
docker exec -it $(id) bash
cat /etc/passwd
ホスト側で www-dataユーザを上記と同じIDで生成する
参考:https://qiita.com/__cooper/items/4740c24666299c366044
3. データディレクトリのコピーとパーミッション変更
docker cp $(id):/var/www/html ~/docker-grav/grav_data
chown -R www-data:www-data ~/docker-grav/grav_data
4. コンテナ停止
docker stop $(id)
5. マウントありで、コンテナ起動
docker run -d -p 8000:80 --restart always -v grav_data:/var/www/html grav:latest
6. ホスト側のSELinux調整
めんどくさいので、適当に殺しておく。 (マウントしてもコンテナ側からファイルが読めない問題....)