基本的にはここに書かれている通りに進めた。: https://www.playframework.com/documentation/ja/2.4.x/ProductionHeroku
herokuツールのインストールおよび、herokuアカウントは取得済みとする。
activatorでプロジェクトの作成
$ activator new プロジェクト名 play-scala
git管理化
$ git init
$ git add .
$ git commit -m "initial commit"
herokuプロジェクトの作成
$ heroku create
デプロイ
$ git push heroku master
ここで http://アプリ名.heroku.com/ にアクセスできるはずだがエラーになってしまう。試しに heroku logs でログを見てみると次のようなエラーログが。
2016-04-25T10:27:14.332916+00:00 app[web.1]: [error]
p.a.l.c.CryptoConfigParser - The application secret has not been set,
and we are in prod mode. Your application is not secure.
2016-04-25T10:27:14.337915+00:00
app[web.1]: [error] p.a.l.c.CryptoConfigParser - To set the application
secret, please read
http://playframework.com/documentation/latest/ApplicationSecret
2016-04-25T10:27:14.435785+00:00
app[web.1]: [error] p.a.l.c.CryptoConfigParser - The application secret
has not been set, and we are in prod mode. Your application is not
secure.
2016-04-25T10:27:14.435967+00:00 app[web.1]: [error]
p.a.l.c.CryptoConfigParser - To set the application secret, please read
http://playframework.com/documentation/latest/ApplicationSecret
2016-04-25T10:27:14.436789+00:00
app[web.1]: [error] p.a.l.c.CryptoConfigParser - The application secret
has not been set, and we are in prod mode. Your application is not
secure.
2016-04-25T10:27:14.436985+00:00 app[web.1]: [error]
p.a.l.c.CryptoConfigParser - To set the application secret, please read
http://playframework.com/documentation/latest/ApplicationSecret
エラーメッセージで検索してみると次の解決策が見つかった。
http://stackoverflow.com/questions/8686394/how-to-keep-the-app-secret-a-secret
conf/application.conf の「play.crypto.secret」の行を次のように修正
play.crypto.secret = ${APP_SECRET}
そして、heroku環境でAPP_SECRETという環境変数が設定されているようにする
$ heroku config:add APP_SECRET=xxxxxxxx
(xxxxxxx)のところに秘密のキーを適当に作って入れる
これで、git pushしたら動くはず
ローカルでstartしたいときのためにローカルでもAPP_SECRETを設定しておく
$ export APP_SECRET=hoge
環境
- Play framework 2.5.2
- JDK: java-8-oracle
- OS: Ubuntu 14.04