Play Framworkでリリース環境にデプロイしてみた。あとサービスを稼働させてみた。
開発環境ではrun
しか、使ったことがない。んで、run
はコンソール画面を閉じるとプロセスも一緒にダウンしてしまうので、リリースではツカエナイ。
色々試してみて、とりあえずはこの方法でいいだろ。ということでメモ。
バージョン
[project] $ playVersion [info] 2.3.9
デプロイ
# これで実行ファイルが生成される
$ ./activator clean stage
動かす
# 実行する $ ./target/universal/stage/bin/my-app -Dapplication.secret=abcdefghijk &
問題点
実行ファイルを作成したら、実行するんですけども、その前に動作しているプロセスがあるので一度ストップしなければいけません。
現状使っているコマンドはこんな感じ
# プロセスを確認する $ ps aux | grep java # プロセスを停止 $ kill -kill xxxxx $ すぐに実行 $ ./target/universal/stage/bin/my-app -Dapplication.secret=abcdefghijk &
しかし、これはやっちゃダメですね。一度停止しちゃうので、サービスに影響を与えてしまう。
スクリプトファイルでも同じことだとは思いますが、手動じゃない分、正確で早さもあるかなと思います。ので、Apacheとかみたいに、/etc/init.d/httpd restart
のようなスクリプトファイルを作ってみようかなと思います。
あと、DBのマイグレーション。実行ファイルを作成するまえに一度検証で./activator run
とかで、DBをEvolutionしておかないと、stage
したあとの、実行ファイルでエラーが出力されます。
これは手順書みたいなスクリプトを用意したほうが良いのかな。。。とりあえず今はこんな感じ。