【发布时间】:2017-05-23 05:42:07
【问题描述】:
我正在使用 sbt 本机打包程序插件来创建我的应用程序的 zip 文件,以便部署到弹性 beanstalk。我想在我的 beanstalk 环境中设置环境变量,并将它们用于在运行时配置我的应用程序。我试图像这样在我的 Procfile 中引用环境变量:
web: ./bin/bridgeservice -Dhttp.port=$PORT
这不起作用,因为 $PORT 没有被打包程序生成的启动脚本插值。
我也尝试在 build.sbt 中定义变量,如下所示:
import scala.util.Properties
javaOptions in Universal ++= Seq(
"-Dhttp.port=" + Properties.envOrElse("PORT", "9004"),
)
这也不起作用,因为打包程序在构建可分发 zip 时需要 PORT 环境变量,并在 application.ini 文件中硬编码默认值 9004。
是否可以在应用启动时根据环境变量动态传递java选项?
【问题讨论】:
-
我已经在 Ubuntu 16.10 上进行了本地测试,它可以工作。插值不应由脚本完成,而应在调用脚本的 shell 中完成。
-
你用的是什么方法?
-
我用
sbt stage构建了this project 并用./target/universal/stage/bin/mukis-application-conf -Dexample.greeting=$PATH调用了脚本,一切都按预期显示
标签: scala amazon-elastic-beanstalk sbt-native-packager