有志の方の記事を参考
Ruby on Rails同様に最近のLaravelもさわってみたいと思い、Docker環境でLaravelの開発環境を作れないか調べてみた。
自分で一から作る余裕はなかったので、ネットで探してみたところ、最近の記事で有志の方があげてくれていた。

しかし、私の環境だとそのままでは動かなかったので、メモを残しておく。
Permission deniedのエラー対応
公開されているGitHubリポジトリをクローンして、VSCodeでdevContainerで開いたところ、コンテナのビルド中にディレクトリ・ファイル生成のところでPermission deniedのエラーが出た。
Claudeに聞いてみたところ、とりあえず実行ユーザーをrootにしてみたらということだったので、次のようにwebとappに対してrootユーザーを指定した。
services:
web:
user: root
build: ./container/apache
container_name: web
restart: always
ports:
- ${WEB_PORT}:80
volumes:
- ../:/var/www/html
- ./container/apache/httpd.conf:/usr/local/apache2/conf/httpd.conf
depends_on:
- app
app:
user: root
build: ./container/php
これでエラーは解決してコンテナ環境を立てることができた。
Deprecatedの警告が大量に表示される
手順通りに進めると、なぜかDeprecatedの警告が大量に表示された。
Deprecatedはバージョンが古いときによく出る警告なので、バージョンを調べてみたところ、PHPは8.4で最新が入っていて問題なさそう。
Laravelのバージョンは手順の中で8を指定していたので、そのまま8を入れたがこれがまずかった。
調べてみると、Laravelの最新バージョンは12だった。
PHPのバージョンに対して、Laravelが古すぎるために出ていた警告だった。
次のようにcomposerで12を指定したら警告は出なくなった。
composer create-project laravel/laravel:^12.0 example-app
昔Laravelをさわってた頃はLaravel 8っていうと結構新しいイメージだったけど、もう4世代も前のバージョンになっちゃってたのか・・・
ということで環境構築はdocker-compose.ymlの一部修正とLaravelの指定バージョンを変えることで無事Laravelの開発環境を作ることができた!