Fly.io へデプロイする
原文: Deploy to a Fly.io ── © Louis Pilfold and the Gleam contributors, Apache-2.0。日本語訳 © 2026 Canonical。
Fly.io は便利で使いやすいデプロイ基盤(platform)です。Gleam プロジェクトの初期からのスポンサーでもあります。Fly、ありがとう!
アプリケーションを準備する
アプリケーションが 0.0.0.0 で待ち受けるようにしてください。Mist や Wisp を使用している場合は、次のように mist.bind 関数で設定できます。
let assert Ok(_) =
wisp_mist.handler(handle_request, secret_key_base)
|> mist.new
|> mist.bind("0.0.0.0") // <- この行を追加する
|> mist.port(8000)
|> mist.start_httpアプリケーションがどのポートで起動するかを覚えておいてください。本ガイドでは以降、ポート 8000 を使用します。
Dockerfile を作る
Fly のコンテナ対応を利用すれば、アプリケーションをビルドしてデプロイの準備を整えることができます。
Dockerfile という名前のファイルを作成し、以下の内容を記述します。
FROM erlang:27.1.1.0-alpine AS build
COPY --from=ghcr.io/gleam-lang/gleam:v1.8.0-erlang-alpine /bin/gleam /bin/gleam
COPY . /app/
RUN cd /app && gleam export erlang-shipment
FROM erlang:27.1.1.0-alpine
RUN \
addgroup --system webapp && \
adduser --system webapp -g webapp
USER webapp
COPY --from=build /app/build/erlang-shipment /app
WORKDIR /app
ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["run"]Fly.io の CLI を用意する
Fly のウェブサイトの手順に従って、Fly.io プラットフォームのコマンドラインインターフェースである flyctl をインストールしてください。
インストールが完了したら、CLI からサインアップします(すでに Fly.io のアカウントをお持ちの場合はログインします)。
fly auth signup
# または
fly auth loginアプリケーションをデプロイします。
プロジェクトのディレクトリ内で Fly の CLI を使用し、アプリケーションを Fly のプラットフォーム上に作成して稼働させます。
flyctl launchCLI からはいくつか質問されます。
- アプリケーションの名前。
- アプリケーションが所属する Fly の organisation(組織)。
- アプリケーションをデプロイするリージョン。
- アプリケーション用の PostgreSQL データベースが必要かどうか。
これらに回答すると、Dockerfile を使用してアプリケーションがビルドされます。デプロイが完了したら、flyctl open を実行してウェブブラウザで開くことができます。
以降、アプリケーションの新しいバージョンをデプロイするには、ソースコードの変更を保存した後に flyctl deploy を実行します。