0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

チュートリアル記事を丁寧に追った結果起こったHeroku Build failed "Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255"

Posted at

はじめに

Docker によって Laravel 環境を構築し、Heroku にデプロイするこちらのチュートリアル記事

を参考にして取り組んでいたところ、Heroku での自動デプロイに失敗しました。

image.png

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255

上記のエラーは View build log で出てくるログの最後の方にあるエラー文の抜粋です。

この記事では初学者なりに格闘した内容を書きます。

単刀直入に言うと

PHP のバージョンが Heroku でサポートされているバージョンではなかった。

冒頭のサイトでは php:7.2-fpm ですが、2022年8月14日現在 PHP 8 以上が推奨されていました。

こちらのサイトで PHP の対応バージョンが記載されています。
一次情報は大事。

2022年8月14日現在

Heroku’s PHP support extends to applications using the latest available releases in the PHP 7.4, PHP 8.0 and PHP 8.1 series.

PHP 7.4 is in security-only maintenance mode and will be fully end-of-life at the end of 2022.

「PHP 7.4 は(中略)2022年末に完全にサポート終了」とのことで PHP 8 を使うことが推奨されています。

現在の PHP バージョンの確認方法

docker-compose を使ってる方は現在の PHP バージョンは

powershell
$ docker-compose exec app php --version

で確認できます。

PHP のバージョンを上げる方法

Dockerfile の記載を更新します。

Dockerfile
FROM php:8.0-fpm

そのあとコンテナを更新します。

powershell
$ docker-compose up -d --build

-d はバックグラウンドで実行するオプション。
--build はすでに同じ image が build されていても省略せずに build を強制するオプションです。

解決?

私が当エラーに当たったときはエラー文のコピペ検索でこちらに行きつき、PHPのバージョンアップを行う前にこのページの対応をしました。もしかしたら、PHPバージョンアップの後にこのページの処置が必要になるかもしれません。

経緯

ここからは私と同じ状況に陥った方が、よりこの記事にたどり着きやすくなるように私がエラーに陥った経緯を説明します。

冒頭で紹介した記事を上から丁寧に追っていった際、デプロイ で失敗していたことに気づかずに素通りし、

APP_KEYの設定 の章で最初に躓きました。

powershell
$ heroku run php artisan key:generate --show -a <アプリ名>
$ heroku config:set APP_KEY='{ここに上記で生成されたAPP_KEY(base64から始まる文字列)をコピペ}' -a <アプリ名>

コマンドを実行しても、最初のコマンドで

bash: php: command not found

のエラーが出ました。この時点で Heroku の Build が失敗しています。
しかし web 検索で「.env に書かれている内容をコピペする」という対症療法を見つけ、その場はクリアしてしまいました。

その次のDBのマイグレーション・シーディングでも

powershell
heroku run php artisan migrate --seed -a <アプリ名>

同様のエラーでどうしてもマイグレーションが行えず、さきほどの Stackoverflow などを試していました。

まとめ

参考にする記事の古さの確認(界隈や分野によっては1年前の記事は全然古く感じないかもしれませんが)、1次情報を見ることの大切さ、バージョンの確認など基本のキを改めて叩きつけられたような思いです。少しでも同じような箇所でつまずいた方の力になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?