herokuへデプロイを試みていますが、下記のエラーが出ています。
エラー内容

composer.json/composer.lock requires php ^7.2.5 -> found php[8.1.6, 8.1.7, 8.1.8, 8.1.9] but it does not match the constraint.
composer.lockで明記されたPHPのバージョンと、herokuが求めるPHPのバージョン?が異なっているようなエラーが出ているのですが、これの解決方法が分かりません。
試したこと
下記のheroku公式サイトでは、herokuがサポートするPHPのバージョンは7.4・8.0・8.1と書いてあります。
https://devcenter.heroku.com/ja/articles/php-support#php-runtimes
そのため、composer.jsonのPHPバージョンを7.4とした上で、composer updateを実施しました。
該当のソースコード
composer.json
{ "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", "keywords": [ "framework", "laravel" ], "license": "MIT", "require": { "php": "^7.4", "fideloper/proxy": "^4.4", "laravel/framework": "^6.20", "laravel/socialite": "^5.5", "laravel/tinker": "^2.5" }, "require-dev": { "barryvdh/laravel-debugbar": "3.5", "facade/ignition": "^1.16.4", "fakerphp/faker": "^1.9.1", "mockery/mockery": "^1.0", "nunomaduro/collision": "^3.0", "phpunit/phpunit": "^8.5.8|^9.3.3" }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true }, "extra": { "laravel": { "dont-discover": [] } }, "autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "database/seeds", "database/factories" ] }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "minimum-stability": "dev", "prefer-stable": true, "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ] } }
composer.lock
composer.jsonはPHP7.4と記載して、composer updateしたため、
composer.lockの"require"に記載されるPHPも7.4と更新されるかと思うのですが、、
更新されていないのも謎です。
もし仮に、herokuがPHPのバージョンを8以上しかサポートしていないなら、
Laravel6系を今使っているため、Laravel7へグレードアップする必要があるのですが、
公式サイト見る限り、PHP7.4でも良いはずなので…
解決方法について、少しでもアイデアが思いついた方がいらっしゃいましたら、
ぜひコメントいただけますと幸いです。
補足情報(FW/ツールのバージョンなど)
・Laravel 6.2.0
・PHP 7.4
・docker使用(mysql、nginxコンテナ構築)

0 コメント