【Docker compose】lamp+Laravle環境を作るpart3

前回に引き続き、今回は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:

次回はいよいよコンテナの起動をします

シェアする

  • このエントリーをはてなブックマークに追加

フォローする