雑多に書きたくなると、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調整

めんどくさいので、適当に殺しておく。 (マウントしてもコンテナ側からファイルが読めない問題....)

Previous Post Next Post

DockerでGravを構築したメモ 2020年版