Phoenixのデプロイ
Erlang (Elixir) の機能の中で気になっているのが、ホットデプロイだ。といっても、そういう機能があるからといって気軽にデプロイできるものでもないらしいけど。
デプロイに関するスライド。
- http://sile.github.io/slide/kbkz_tech_05/#/
- http://www.slideshare.net/ohr486/shibuyaex-1-elixir?next_slideshow=1
デプロイ方法
Exrm
Exrm (Elixir Release Manager) を使うのがよさげ。 Phoenix 公式でも紹介されている。 設定方法などはそちらを参照。
パッケージ作成
MIX_ENV=prod mix release
で本番環境用のリリースパッケージが rel/hello_phoenix/releases
の下にバージョンごとに作成される。
起動
$ ./rel/hello_phoenix/bin/hello_phoenix start
停止するときは stop で。
更新
mix.ex に書かれているバージョンを上げ、MIX_ENV=prod mix release
でパッケージを作成する。
(ここでは バージョンをv0.0.1 からv0.0.2に上るとする。)
v0.0.1のアプリが稼働中の状態でv0.0.2に更新するには
rel/hello_phoenix/bin/hello_phoenix upgrade 0.0.2
で、OK。
自分の環境で試した限りでは、更新時に接続できないということはなかった。