📑

[Laravel] Composerにphpのバージョンをあげろと急に怒られはじめてハマった話

2023/07/22に公開

composerさん今日はご機嫌ななめ

Composer detected issues in your platform:
Your Composer dependencies require a PHP version ">= 8.1.0".

時々こういうエラーが出るときありませんか?

実はこれDockerを使っている場合によく起きる問題です。

一言で言ってしまうと、dockerのコンテナに入ってからcomposer installをしましょうということになります。

ついつい手が滑ってコンテナに入らずに、composer installをするとこのエラーが発生したりします。

dockerのコンテナの中のphp

これは、お使いのPCのphpのバージョンとdockerのコンテナ内のphpのバージョンが違うから起きます。

もしやってしまった場合は、docker compose execでコンテナに入ってcomposer updateでcomposer.json周りを直せば動くようになると思います。

楽にコンテナに入る方法

自分はdocker-compose.ymlのphpのコンテナのサービス名は、そのままphpという名前にしているので、コンテナに入るときは下のコマンドを叩きます。

docker compose exec php bash

ただ、これ毎回打つの面倒なんですよね。
ということでエイリアスを設定しています。

最近のmacだとzshellなので、ホームディレクトリ下の.zshrcファイルに以下を追記しています。

alias dce='docker compose exec'

こうしておくと下のコマンドだけでコンテナに入れます。

dce php bash

php bashの部分もエイリアスに含めても良いのですが、DBのコンテナに入ることもあるので、docker compose execまでにしています。

以上です。

Discussion