LoginSignup
0
0

More than 1 year has passed since last update.

Play Frameworkで作成したWebアプリをHerokuにデプロイするときに詰まった話。

Last updated at Posted at 2021-05-05

経緯

Play Frameworkで作成したWebアプリを作成しました。
せっかく作成したのでHerokuにデプロイしてみようとしたのですが
エラーでデプロイができませんでした。
ログを見ると"App crashed"と書かれており
ログだけでは何が原因なのかがちょっとわからなかったです。
ちなみに言語はJavaです。

対応

ログに書かれている"App crashed"を頼りに
調べてみて下記のこと実施してみました。

1.不要なファイルの削除

  ローカルではSQLiteを利用していたため
  データベースのファイル(拡張子が「.sqlite3」の奴)や
  クエリが記載されたファイルがありました。
  HerokuではPostgreSQLを利用するため、いらないので削除しました。

2.PostgreSQLのJDBCドライバの追加

  DBはPostgreSQLを利用するので
  JDBCドライバ(拡張子が「jar」のファイル)を追加しました。

3.build.sbtの修正

  「name:=」のところがアプリ名になっていなかったので
   アプリ名になるよう修正。
   また、PostgreSQLのドライバーライブラリを記載しました。

name:=""""アプリケーション名"""
        ・
        ・
        ・
libraryDependencies+="org.postgresql"%"postgresql"%"jarファイルのバージョン"

4.Procfileの追加

  Procfileがなかったので追加しました。
  記載内容は以下になります。
  ※${DATABASE_URL}は後で説明。
   ${APPLICATION_SECRET}はシークレットキーの環境変数

web: target/universal/stage/bin/アプリケーション名 -Dhttp.port=${PORT} -DapplyEvolutions.default=true -Ddb.default.driver=org.postgresql.Driver -Ddb.default.url=${DATABASE_URL}
-Dplay.cypto.secret=${APPLICATION_SECRET}

5.application.confの修正

  PostgreSQLを利用するため、driver,url,user,passwordを追加。
  シークレットキーを設定しないと怒られたので、それも設定。
  また、現状だとアクセスが許可されているのはローカルのみなので
  一旦は全許可とするように設定。
  ※url,user,passwordの環境変数について
   HerokuではDBの情報を環境変数に設定します。
   デフォルトで環境変数「DATABASE_・・」にDBの情報を保持する。

db.default.driver=org.postgresql.Driver
db.default.url=${?DATABASE_URL}
db.default.user=${?DATABASE_USER}
db.default.password=${?DATABASE_PASSWORD}
play.http.secret.key="生成したシークレットキー"
play.filters.hosts.allowd+="."

感想

上記のことを行い無事デプロイできました。
デプロイで詰まってから解決するまで2~3週間ほど時間が
かかってしまい大変でした。
Ruby on Railsは簡単でしたので大丈夫かなーと思っていましたが
全然大丈夫ではありませんでした。
シークレットキーをapplication.confとProcfileに記載したりと
ところどころあってるのかなーと思うところはありますが
とりあえずデプロイできてよかったです。
あと、説明が間違ってたらごめんなさい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0