Gigalixirへのデプロイ
必要なもの
このガイドに必要なのは、動作するPhoenixアプリケーションだけです。デプロイ用の簡単なアプリケーションが必要な方は、起動ガイドにしたがってください。
ゴール
このガイドの主な目的は、Gigalixir上でPhoenixアプリケーションを実行することです。
手順
現在地を確認できるように、手順をいくつかのステップに分けておきます。
- Gitリポジトリの初期化
- Gigalixir CLIのインストール
- Gigalixirのサインアップ
- Gigalixirアプリの作成とセットアップ
- データベースの用意
- プロジェクトをGigalixirに対応させる
- デプロイ!
- 便利なGigalixirコマンド
Gitリポジトリの初期化
Gitリポジトリの初期化がまだなら、ファイルをgitにコミットする必要があります。プロジェクトディレクトリにて下記のコマンドを実行するとGitリポジトリの初期化ができます:
$ git init
$ git add .
$ git commit -m "Initial commit"
Gigalixir CLIのインストール
こちらの説明にしたがって、お使いの環境にあうCLI(コマンドラインインターフェイス)をインストールしてください。
Gigalixirのサインアップ
gigalixir.comもしくはCLIでアカウントのサインアップができます。CLIを使って進めましょう。
$ gigalixir signup
Gigalixirのフリープランはクレジットカードは必要ではなく、無料で1つのアプリインスタンスと1つのPostgreSQLデータベースを使うことができます。しかし、本番運用するつもりなら有料プランにアップグレードすることを検討してください。
次にログインしてみましょう。
$ gigalixir login
そして確かめてみましょう。
$ gigalixir account
Gigalixirアプリの作成とセットアップ
GigalixirでPhoenixアプリをデプロイする方法は3つあります: ひとつはmix、もう1つはElixir releases、3つ目はDistilleryです。このガイドでは、mixを使うことにします。なぜなら一番簡単に起動できて稼働できるからです。しかしリモートオブザーバーを接続したりホットアップグレードはできません。もっと詳しい情報はMix、Distillery、Elixir Releasesの比較を参照してください。他の方法でデプロイしたいなら、スタートガイドにしたがってください。
Gigalixirアプリの作成
Gigalixirアプリを作ってみましょう。
$ gigalixir create
作られたことを確かめてみましょう。
$ gigalixir apps
git remoteが作られたことを確かめてみましょう。
$ git remote -v
バージョン指定
Elixir、Erlang、Node.jsのバージョンがデフォルトで使えるビルドパックではかなり古いので、開発に使ったバージョンと本番のバージョンをそろえておくことはよい考えです。それではこれをやっておきましょう。
$ echo "elixir_version=1.10.3" > elixir_buildpack.config
$ echo "erlang_version=22.3" >> elixir_buildpack.config
$ echo "node_version=12.16.3" > phoenix_static_buildpack.config
コミットすることを忘れないでください。
$ git add elixir_buildpack.config phoenix_static_buildpack.config
$ git commit -m "set elixir, erlang, and node version"
プロジェクトをGigalixirに対応させる
Gigalixirでアプリを稼働させるために必要な作業はこれですべてですが、本番環境ではSSLを強制したいかもしれません。そのためには強制SSL化を参照してくだい。
またデータベース接続でSSLを使いたいかもしれません。その場合は、Repo
コンフィグの中で ssl: true
のコメントアウトを外してください。
データベースの用意
アプリのためにデータベースを用意しましょう。
$ gigalixir pg:create --free
データベースが作られたことを確かめておきましょう。
$ gigalixir pg
DATABASE_URL
と POOL_SIZE
が作られたことを確かめておきましょう。
$ gigalixir config
デプロイ!
プロジェクトをGigalixirへデプロイする準備は整いました。
お待ちかねのデプロイをやってみましょう!
$ git push gigalixir master
デプロイのステータスをチェックして、アプリが Healthy
になるまで待ちましょう。
$ gigalixir ps
マイグレーションを実行しましょう。
$ gigalixir run mix ecto.migrate
アプリのログをチェックしてみましょう。
$ gigalixir logs
すべてが正しそうであれば、Gigalixirで稼働しているアプリをみてみましょう。
$ gigalixir open
便利なGigalixirコマンド
リモートコンソールを開きます。
$ gigalixir account:ssh_keys:add "$(cat ~/.ssh/id_rsa.pub)"
$ gigalixir ps:remote_console
リモートオブザーバーを開くには、リモートオブザーバーを参照してください。
クラスターリングをセットアップしたいなら、クラスターリングノードを参照してください。
ホットアップグレードのためには、ホットアップグレードを参照してください。
カスタムドメインをつけたいですとか、スケーリング、ジョブ、その他の機能については、Gigalixirドキュメントを参照してください。
トラブルシューティング
トラブルシューティングを参照してください。
また、help@gigalixir.comへEメールを送ることや、Slackの招待リンクから#gigalixirチャネルに参加することをためらわないでください。