当我运行“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文件。
答案 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上更改任何内容。