【发布时间】:2014-04-24 14:50:40
【问题描述】:
我的 Scala Dropwizard 使用 SBT Start Script 插件(在撰写本文时提交 c1fefeb59f3d6ba053f99b8d49a52779ac3dbce8),因此我可以编写一个运行脚本,该脚本可以很容易地与工头一起运行。
但是,与 HOCON 不同的是,Dropwizard 的配置系统允许您使用 -Ddw.xxx 开关通过 JAVA_OPTS 覆盖 YAML 文件中的变量。
我想设置端口。
这就是我的问题:在最新版本的 SBT 启动脚本中,JAVA_OPTS 是作为启动脚本的一部分生成的,因此您不能再通过 Procfile 传递它。所以,让 Heroku 管理的 $PORT 进入我的应用程序的唯一方法是通过 JAVA_OPTS 将其设置为 -Ddw.http.port=$PORT
我该怎么做?
我已经在命令行上尝试了heroku config:set 参数:
-
JAVA_OPTS="-Ddw.http.port=$PORT"— 这在我的环境中计算为 $PORT,主要是 ""。 -
JAVA_OPTS="-Ddw.http.port=\$PORT"—heroku config然后将其显示为JAVA_OPTS="-Ddw.http.port=$PORT",但应用程序会获得文字$PORT作为端口号,即它不会在 Heroku 上进行评估。 -
JAVA_OPTS="-Ddw.http.port=\\\$PORT"—heroku config然后将其显示为JAVA_OPTS="-Ddw.http.port=\$PORT",但应用程序会获得文字\$PORT -
JAVA_OPTS="-Ddw.http.port=$$PORT"—$$是当前 shell(不是子 shell)的 pid,所以 Heroku 设置类似12345PORT的东西。
请告诉我如何通过JAVA_OPTS 设置 Heroku 管理的端口。
【问题讨论】:
标签: scala heroku foreman dropwizard