TL;DR
- Next.js v13.4.xにはApp RunnerやFirebaseで発生するバグがあるようす。
- Workaroundはあるけど、根本的な解決を待った方がよさそう。
- v13.3では正常動作することを確認
はじめに
コンテナさえアップロードすればアプリケーションをいい感じに動かしてくれるAWS App Runner。Next.js(SSR)をコンテナで動作するようにして、App Runnerで動かしたかった、のにハマった。
ハマった点①:CPUアーキテクチャ
Apple Siliconで何も考えずにコンテナをビルドするとplatform=linux/arm64
でビルドされる。一方APP Runnerはlinux/amd64
にしか対応していない。気づいたら単純な話なのだけど、気づくまでにえらい時間を食ってしまった。
ハマった点②:Next.js v13.4の問題
やっとまともなエラーログが出るようになったと思ったら、冒頭で言及した問題を踏んでしまった。
App Routerを使いたいのだけど、App Runnerで動かすなら時期尚早かもしれない。App Runner側の環境変数にHOSTNAME='0.0.0.0'
をセットする方法が提示されているが、筋がいい感じはしない。v13.4.x
で発生する問題のようなので、v13.3.4
に戻せば問題ない模様(App RouterがExperimentalであることに留意)。
終わりに
この問題でハマる人が私で最後になることを祈念し本記事を投稿いたします。ECRにデプロイさえすればアプリケーションがいい感じに走るApp Runnerはとてもいいと思います!