Laravelで開発したアプリをHerokuでデプロイした後に泣きそうになった話。

どうも、おぎくぼです。

今回はLaravelで開発したアプリをHerokuでデプロイした後に泣きそうになった話をしたいと思います。

この記事は泣きそうになった日に、なぜか下書きに入れたものです。

少し恥ずかしいのですが、公開します。お楽しみください。

デプロイ後に問題発生

「わぁぁぁ…画像が表示されない!!!」

何てこった!ローカル環境では問題がなかった。なのになぜ…

ある昼下がり。私は発狂しそうだった。

原因はHerokuにあった。どうやらHerokuでは画像を保存できないらしい。

くそっ!大幅な修正が必要そうだ。デプロイ前に知りたかった。

Herokuについての知識が浅い自分が悪いので、とにかく早く修正するしかない。

切り替えて、解決方法を探した。

S3だ。

ググったらAWSのサービスである、S3に画像を保存し、それを呼び出すような処理をするといいとのこと。

解決策がわかって安心した。

ほーほー。早速登録して画像を保存するバケットとやらを作った。

ここまでは非常に順調。

よしLaravelで使えるようにしよう!なーんだ簡単そうじゃん!

S3のパッケージをインストール。

するとエラー。

なんかメモリが足りないらしい。

調べてみると、php.iniの

のところを

にすることでメモリの上限をあげることができるらしい。

簡単だな!しかし何度

を実行してもエラー。どうやらphp.iniが反映されていないらしい。こういう時は

でコンテナを削除し、また立ち上げるといいらしい。

悪夢の始まり

これが悪夢の始まりだった。

「あれ?コンテナを削除したはいいけど、立ち上げ方がわからない…どうしよう。」

最高にテンパった。なぜなら私のローカル環境では、MySQLはエラーしか吐かないんだ。さらにnpmがうまく動かない。

コンテナがなくなったら何もできなのだ。

だからコンテナが消えたとき、立ち上げ方がわからなかったので、終わったと思った。

私は焦りすぎながらコンテナを復活させる方法を必死に検索した。

どんなに検索してもわからない。Dockerの知識がクソすぎるんだ。

「はー終わった。まあ、コードは完成しているから新しいプロジェクトで始めてコピペで何とかするか。」

鬼萎えた。泣きそうだった。原因を作ったphp.ini、そしてそもそも画像を保存できないHerokuを心の底から憎んだ。

一旦おしっこ。こういう時はおしっこしたら気が紛れるはず。だが特に心境に変化はない。むしろいろいろ考えてしまって泣きそうになった。

あっさり解決!

パソコンの前に戻り、開きすぎたタブを一旦整理した。もう私は完全に諦めていた。

私はまたコンテナを立ち上げるために、お世話になっている

最強のLaravel開発環境をDockerを使って構築する【新編集版】(https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4)

を開き、新たなLaravelプロジェクトを始めようとしていた。

と、その時

という文字が見えた。

「何だこれは。あっ、えっ?これでコンテナたてられるじゃん。」

自分の頭の悪さに腹が立った。

割とあっさりと解決。めでたしめでたし。

でコンテナを削除したら、

でコンテナを立てればいい。これを学んだ。

-dが何かというと…↓参考までに

dockerの-dオプション、デタッチドモードって何?(https://qiita.com/keitean/items/d83254090405aa714b15

死の呪いではない。新たなスタートに必要な…ものだ。(いい言葉が思いつかなかった。)

参考記事

最後にHerokuで画像が保存できない問題とその解決策の参考記事を貼っておきます。

最強のLaravel開発環境をDockerを使って構築する【新編集版】(https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4)

Herokuで画像が表示されない問題(https://team-lab.github.io/skillup/step2/image_document.html)

「Herokuにデプロイしたページの画像が表示されない!?」を解決する AWS S3 超カンタン利用法(https://qiita.com/Hiroyuki-Hiroyuki/items/72aed73ff7c0f8508700)

Laravelを使った画像アップロード実装法3選(https://qiita.com/RitaChan/items/d59001430f50789c570f)

超簡単!LaravelでS3を利用する手(https://qiita.com/tiwu_dev/items/ecb115a92ebfebf6a92f)