mix phx.new の代わりに使える phx-docker-compose-new というスクリプトを書いてみました。
Phoenixアプリの開発環境をDocker Composeで構築すると、アプリのみならずPostgreSQLデータベースやLivebookなども一氣にまとめてセットアップすることができて便利です。
しかしながら、現実は一筋縄ではいかない面もあり、いろんなノウハウが必要となるのも事実です。
そこで、初学者でも気軽にPhoenixアプリの開発環境をDocker Composeで構築できるスクリプトがあればいいんじゃないかと思ったのです。もちろん、ただ思っているだけでは何も変わらないので、すぐに取り組みました。
やりかた
念の為 Git、Docker、Docker Composeがインストールされているか確認します。
git version
docker --version
docker compose version
phx-docker-compose-new コマンドのソースコードをダウンロードします。
git clone https://github.com/mnishiguchi/phx-docker-compose-new.git ~/.phx-docker-compose-new
ターミナルで phx-docker-compose-new コマンドが使えるように偽名を定義します。
alias phx-docker-compose-new=~/.phx-docker-compose-new/phx-docker-compose-new.sh
phx-docker-compose-new コマンドを用いて Phoenix のサンプルアプリを生成します。
phx-docker-compose-new sample_phx_app --no-assets --no-gettext --no-mailer
生成されたアプリのディレクトリに入り、アプリを起動します。
cd sample_phx_app
bin/start
以下の URL にアクセスして今すぐ Phoenix アプリを開発できます!
ログを見てみます。ログを閉じるときは「Ctrl + C」を押します。
bin/logs --follow
Elixir の対話コンソール(IEx)は以下のコマンドで起動できます。
bin/console
せっかく IEx を開いたのでプロセスの一覧を表示してみましょう。
IEx.configure inspect: [limit: :infinity]
for pid <- Process.list, do: {pid, Process.info(pid, :registered_name) |> elem(1)}
アプリの停止は以下のコマンドで行います。
bin/stop
Elixir 言語を使ってサーバーの費用を $2 Million/年 節約できたというウワサがあります。
Livebook
ちょうど昨日のElixir Advent Calendar 2023 Day 1でLivebook関連の記事がいくつかありました。
他にもElixirコミュニティの有志の方々が書かれた為になる記事がたくさんあります。ネットで検索してみてください。
さいごに
これでいつでも気軽に Phoenix アプリ開発環境の構築ができます。
本記事は autoracex #259 の成果です。ありがとうございます。