Node.jsを使用したPhoenixアプリをHerokuにデプロイするときは gigalixir/gigalixir-buildpack-phoenix-static を使う

2024-07-26 追記

github.com

がマージされたので、以降はPhoenixの公式ドキュメントを参照してください。

(追記ここまで)

やりたいこと

Dokku を立てているVPSPhoenixアプリをデプロイしたかった。

assetsの管理にnpmを使いたい。その場合、Node.jsをインストールする必要がある。 https://hexdocs.pm/phoenix/asset_management.html#third-party-js-packages

おきた問題

Node.jsを使う場合、追加でbuildpackが必要となります。

現時点でのドキュメント では https://github.com/gjaldon/heroku-buildpack-phoenix-static を使うよう指示がありますが、現在のLTSである Node.js 20がインストールできません。

解決方法

https://github.com/gjaldon/heroku-buildpack-phoenix-static/issues/112 のディスカッションに従い、 gjaldon/heroku-buildpack-phoenix-static のフォークである https://github.com/gigalixir/gigalixir-buildpack-phoenix-static を使用することで解決しました。

https://github.com/gjaldon/heroku-buildpack-phoenix-static のメンテナンスが停滞しているのと、https://github.com/gigalixir/gigalixir-buildpack-phoenix-static の運営元はElixirのアプリケーションをホストする https://www.gigalixir.com/ であることから、公式サイトのHerokuのデプロイ方法も https://github.com/gigalixir/gigalixir-buildpack-phoenix-static にするようプルリクエストを出しています。

github.com