Heroku play scala始终以Prod模式运行

时间:2017-08-19 00:18:26

标签: scala heroku playframework sbt

当我运行“sbt~run”时,我可以看到该模式按预期设置为Dev。但是,当我运行“heroku local web”时,服务器以Prod模式运行。知道我怎么能把这个设置为开发模式?我是否必须使用heroku config CLI设置任何变量?我的目的是在推送到Heroku git之前用heroku本地测试。

在我的Procfile中尝试了这个:

web: target/universal/stage/bin/myapp -Dhttps.port=${PORT} -Dhttp.port=disabled -Dhttps.keyStore=conf/generated.keystore -Dlogback.configurationFile=conf/logback.xml -Dapplication.mode=DEV

但它仍然显示了Prod。服务器运行时,将使用“-Dconfig.resource = root-dev.conf”以编程方式设置conf文件。

1 个答案:

答案 0 :(得分:0)

您希望以某种方式使用application.mode的环境变量(毕竟,这就是环境变量的用途:特定于环境的更改)。有几种方法可以做到这一点,一种是创建APPLICATION_MODE env var,并在Procfile中使用它:

-Dapplication.mode=${APPLICATION_MODE:-DEV}

如果未设置env var,则会将-Dapplication.mode设置为APPLICATION_MODE,默认设置为DEV。然后你可以像这样在Heroku上设置env var:

$ heroku config:set APPLICATION_MODE="PROD"

或者您可以将-Dapplication.mode=DEV中的JAVA_OPTS整个放在您当地回购邮件的.env文件中,如下所示:

JAVA_OPTS="-Dapplication.mode=DEV"

heroku local命令将选择.env并加载它。通过这种方式,您无需在Heroku上更改任何内容。