はじめに
みなさん、Docker環境でLaravel開発してますか?🐳
最近ちょっとハマったことがあって、それを共有しようと思います!
問題点
Docker環境でLaravelの開発してるとき、以下のようなコマンドでファイルを作成すると...
docker compose exec app php artisan make:command SampleCommand
作成されたファイルの権限がrootユーザーになっちゃって、VSCodeで編集できない問題が発生します😱
これって結構イラッとしますよね?編集しようとしたら「権限がありません」って怒られるの、すごくストレス...😅
原因
これは、dockerコンテナ内でコマンドを実行すると、デフォルトでrootユーザーとして実行されるためです。
そのため、作成されるファイルもroot権限になっちゃうんですね。
解決策
超簡単な解決策があります!コマンド実行時にホストマシンのユーザーIDを指定しちゃいましょう!
docker compose exec --user $(id -u):$(id -g) app php artisan make:command SampleCommand
このコマンドのポイント:
-
--user
オプションを使って実行ユーザーを指定 -
$(id -u)
: 現在のユーザーのID -
$(id -g)
: 現在のユーザーのグループID
これで作成されるファイルの所有者が、ホストマシンの自分のユーザーになります!
もう「権限がありません」って怒られることはありません!🎉
まとめ
- artisanコマンドでファイル作成すると、デフォルトではroot権限になる
-
--user $(id -u):$(id -g)
オプションを付けることで解決! - これでストレスフリーな開発ができる!
みなさんも同じような問題にハマったことありませんか?
この解決策で快適な開発ライフを送れること間違いなし!😊