Mac OS: 将PlayFramework应用部署到 Heroku上

折腾了两天,终于折腾出来了,记录下


 参考:

https://www.playframework.com/documentation/2.6.x/Home

https://www.playframework.com/documentation/2.6.x/ProductionHeroku

https://devcenter.heroku.com/articles/heroku-cli

https://devcenter.heroku.com/articles/deploying-scala-and-play-applications-with-the-heroku-sbt-plugin#adding-the-plugin


Mac OS 10.12.6

playframework 2.6.x


1、下载并解压

Play 2.6.x Starter Projects

2、打开shell窗口,输入sudo su ,进入系统管理员环境

3、进入1、的解压目录 ,输入 ./sbt  ;第一次时,这个过程可能会很漫长,需要请求网络下载依赖包,初始化sbt的构建环境。

若提示没有权限执行,可能需要修改sbt脚本的文件权限设置 chmod  777


4、执行run ,在本机浏览器访问 http://localhost:9000 ,应该可以看到正确的页面。在部署时,这个步骤可以忽略


5、配置应用程序密钥(application secret),部署到生产环境,必须配置。

playGenerateSecret

将生成的密钥写入到conf/application.conf文件中,添加一行或替换已有的"chanename"

play.http.secret.key="xbKIX>^nA[r3dXB8gIhLO5N8iy7XxlEyQ;MXVo8l_zDJiEmA_ER]hsM6t8kbY@3R"
注意,这个值不能为空,也不能是changename,否则则生成环境运行,play会抛出异常,主动结束应用

6、如果没有Heroku账号,则先创建一个(创建时需要翻墙)。下面的步骤都是假设已有Heroku账号

安装Heroku的Command Line Interface 环境

brew install heroku/brew/heroku
或者直接在https://devcenter.heroku.com/articles/heroku-cli下载对应Mac OS的安装包

7、设置依赖  Heroku sbt plugin 依赖

在project/plugins.sbt 文件中,添加一行

addSbtPlugin("com.heroku" % "sbt-heroku" % "2.0.0")

8、登录Heroku,创建一个应用

heroku login
heroku create -n

将应用名字配置在play的配置文件中。在build.sbt中添加一行

herokuAppName in Compile := "polar-coast-90592"

8、执行部署

./sbt stage deployHeroku

用浏览器访问https://polar-coast-90592.herokuapp.com/ 看看效果

Bad Request

For request 'GET /' [Host not allowed: polar-coast-90592.herokuapp.com] 


配置还要修改,修改conf/application.conf 里面的 

play.filters 的hosts节点, 设置 allowed = [".herokuapp.com"]
重新部署下 ./sbt stage  deployHeroku

猜你喜欢

转载自blog.csdn.net/holdsky/article/details/77854793