はじめに
社内で自作アプリをデプロイするイベントがあり、Laravelで簡単なアプリを作りました。
デプロイをミスっても誰にも迷惑をかけないナイスなイベントです。
デプロイにあたって躓いた点を紹介します。
技術選定
案件でLaravelを使っていたのでLaravelを採用しました。
デプロイ先はrenderを使いました。
renderはLaravelでも使えると公式ページに記載されていたので採用しました。
無料で使えますがデータベースの利用には制限があります。
90日しか使えないので継続的なサービスには使えなさそうです。
ちなみにHerokuを推すサイトが多かったのですが、有料になっていたので避けました。
つまづき
主にrenderでデプロイする際に躓きました。
dockerfileはrender専用のものを使う必要がある
公式ホームページに掲載されているdockefileを使いましょう。
ローカルで開発している際には、Laravel SailでDockerコンテナ上でLaravelを立ち上げていました。
Sailはdocker-composerを利用してDockerコンテナを起動しています。
デプロイもdecker-composerでできればよかったのですがやり方がわからず…とりあえずデプロイしたかったため公式サイトのdockerfileをRootに置いてデプロイさせました。
データベースに関する失敗
renderでも何でもいいのですがデータベースを用意する必要があります。renderはデプロイすると自動でデータベースまで用意してくれると勘違いしていました。
公式ページにも書いてありましたね^^;
Create a new PostgreSQL database on Render and copy the internal DB URL to use below.
また、renderで使用できるデータベースはPostgreSQLのみです。LaravelはMYSQLでインストールしてしまったのでPostgreSQLに変える手間が発生しました。
新規にLaravel開発をするときにPostgreSQLにしておけばよかったです。
フロントエンドのビルド標準が変わった
Laravel 9からフロントエンドのデフォルトがLaravel MixからViteになりました。
ドキュメントによってはLravel Mixを参考にしたままなので適宜読み替える必要があります。
今回はプロフェッショナルWebプログラミングLaravelという本を参考にしていたのですが、この本がまさにLaravel Mixを前提に解説していたので読み替えに苦労しました。