🏙️

Phoenix LiveViewで作ったライフゲームをFly.ioにデプロイする

2022/12/23に公開

手遊びにPhoxnix LiveViewでライフゲームを作ってみようと思ったところ、「Phoenix LiveViewでライフゲーム」という素晴らしい記事がありました。自分で作る必要はなかったということで、最新版のPhoenixを使って最小限の構成で動くようにして、Fly.ioにデプロイしてみました。

https://livegame.fly.dev/

開発環境

  • Elixir 1.14.2 (compiled with Erlang/OTP 25)
  • Phoenix v1.6.15

やったこと

プロジェクトのセットアップ

LiveViewを使うので--liveを、Ectoを使わないので--no-ectoでセットアップしました。

mix phx.new livegame --live --no-ecto

https://github.com/kentaro/livegame/commit/9d77be95a8fcf642de06b1641cc96763481ed733

ファイルの準備

Phoenix LiveViewでライフゲーム」にあるファイルを追加していきます。lib/livegame/pattern.exについては説明がなかったので、リポジトリから持ってきました。

https://github.com/kentaro/livegame/commit/7766e16fd9a35eb37f1b4032d65c25ac6261a980

Fly.ioへデプロイ

Deploying on Fly.io — Phoenix v1.6.15に沿って、Fly.ioにデプロイしました。その際、Dockerfileなどが生成されたので、リポジトリに追加しておきます。

https://github.com/kentaro/livegame/commit/7282a427b42881234714365547bd8abf51759ace

GitHub Actionsの準備

GitHubにpushしたらデプロイしてほしいので、GitHub Actionsを使います。Continuous Deployment with Fly and GitHub Actions · Fly Docsにある通りにすれば、簡単にできました。

https://github.com/kentaro/livegame/commit/98b190acb0ec561adb4c98f7c51859f5da6a7478

おわりに

ライフゲームを作ることそのものも楽しんでみたいので、もうちょっとあれこれいじってみたいと思います。まずはパターンをいくつか追加するところからかな。

あらためて、「Phoenix LiveViewでライフゲーム」に感謝いたします。

Discussion