環境
docker-compose: 1.29.2
Laravel Framework: 8.80.0
Laravel Sail: 1.13.2
Laravel Sailを使用したLaravelプロジェクトになります。
手順
docker-compose.yml
Laravelのドキュメントにも手順がありますが、
それに則れば実現できるとは思います。
# PHP 8.1
# ...
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.1
image: sail-8.1/app
# ...
# PHP8.0
# ...
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
image: sail-8.0/app
# ...
# PHP7.4
# ...
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/7.4
image: sail-7.4/app
# ...
変更したバージョンで記載されているように、
laravel.test
のcontext
とimage
を修正すれば万全です。
sail
をbuildし直す
あとは、修正した内容を反映してあげればOKです。
以下のコマンドを叩きましょう。
$ ./vendor/bin/sail build --no-cache
少し時間がかかりますが、コーヒーでも飲みながら待ちましょう。
(私はコーヒーを飲めませんが・・・w)
完了
これで基本的な対応は完了です。
$ ./vendor/bin/sail up -d
本当に変更されているか確認しましょう。
$ ./vendor/bin/sail php -v
以上です!!
注意点 ハマったこと
私はPHPのバージョンを8.1から8.0にしようとしましたが、
うまく変更されず8.1地獄に陥っていました。
もちろん上記の手順はしっかりと踏みました。
それでも、ダメだったんですね・・・。
原因は単純
原因は単純で、PHPのバージョンの最新が8.1になったからです。
今までうまくいっていたのは、
7.4と8.0とメジャー・バージョン番号(7と8のこと)が異なっていたためです。
8.1が出た今では、8系として8.1に優先度が吸われてしまい、
8系(8.1)にした後、8.0に変更するという細かな指定が必要になった訳です。
そして、この対応が行われたのが、
Laravel Sail: 1.13.1
です。
解決方法
つまり、Laravel Sailのバージョンを上げましょう。
$ ./vendor/bin/sail composer update laravel/sail
これで、解決します!!
まとめ
PHPのバージョンを変えるなんて簡単だ
そう思っていた時期が私にもありました・・・。
私はここに至るまでに2日以上の時間と、
先輩の時間をめっっっっっっっっっっっちゃ使ってもらってしまいました!!!!
この記事はその集大成という訳です。
同じ苦しみを味わってる人がいたら、早くバージョンを上げるんだッ!!!!!