前回に引き続き、今回はlampのDockerコンテナと組み合わせます
こちらの記事を参考にさせていただきました
Laravel + Dockerの準備
次にdockerコンテナ内のapacheからホスト側のLaravelのプロジェクトフォルダに書き込みができるよう権限を設定します
以下誤ったことをしたのでスキップしていただけると
現状のグループ一覧を確認
[root@dev381 ~]# getent group
sawaryot、apacheユーザーをsawaryotというグループに
追加しておきます
[root@dev381 ~]# usermod -aG sawaryot apache
[root@dev381 ~]# usermod -aG sawaryot sawaryot
間違えた場合は以下のようにグループからユーザーを削除できる
// apacheグループからsawaryotユーザーを削除
[root@dev381 ~]# gpasswd -d sawaryot apache
仕切り直して、dockerコンテナ、ホスト側との権限の話はこちらの記事を参考に
抑えておく点としては
・コンテナ内のapacheユーザーのuidとホスト側で用意するユーザーのuidをあわせる
ここらへん省略されている記事が多いので先程の記事では助かりました
Laravelのインストールフォルダの所有者がsawaryotなので
sudo useradd -M -u 33 -g sawaryot www-data
ユーザーが作成されていることを確認
$ cat /etc/passwd
www-data:x:33:1000::/home/www-data:/bin/bash
ユーザーが意図したグループに属していることを確認
[root@dev381 ~]# getent group sawaryot
sawaryot:x:1000:apache,sawaryot
[root@dev381 ~]# groups www-data
www-data : sawaryot
あれ?getentで確認すると所属されていないことになってるけどなんでだろ
[root@dev381 ~]# cat /etc/group
sawaryot:x:1000:apache,sawaryot
/etc/groupの中も所属されていないことになってる
念のためもう一度グループ所属設定をしてみる
[root@dev381 ~]# usermod -G sawaryot www-data
getent group sawaryot
[root@dev381 ~]# getent group sawaryot
sawaryot:x:1000:apache,sawaryot,www-data
[root@dev381 ~]# usermod -G www-data sawaryot
[root@dev381 ~]# getent group www-data
www-data:x:1000:sawaryot
これで大丈夫そう
あとLaravelプロジェクト配下のフォルダがすべてwww-dataグループになっているのでユーザーsawaryotでもそのファイルを編集できるようにしておく
[sawaryot@dev381 config]$ getent group www-data
www-data:x:1000:
次回はいよいよコンテナの起動をします
コメント