Ich benutze das sbt native Packager Plugin, um eine Zip-Datei meiner Anwendung für den Einsatz in Elastic Beanstalk zu erstellen. Ich möchte Umgebungsvariablen in meiner BeanStalk-Umgebung festlegen und diese verwenden, um meine Anwendung zur Laufzeit zu konfigurieren. Ich habe versucht, wie so die env Variablen in meinem procfile zu verweisen:Umgebungsvariable basierte Laufzeitkonfiguration mit sbt native packager
web: ./bin/bridgeservice -Dhttp.port=$PORT
Das funktioniert nicht, wie $PORT
nicht durch das Startskript interpoliert durch den Verpacker erzeugt.
Ich habe auch die Variablen in meinem build.sbt wie so zu definieren versucht:
import scala.util.Properties
javaOptions in Universal ++= Seq(
"-Dhttp.port=" + Properties.envOrElse("PORT", "9004"),
)
zum Zeitpunkt der auch funktioniert nicht wie der Verpacker erwartet, dass die PORT
env Variable für den Bau des ausschüttbaren Reißverschluss und HardCodes den Standardwert von 9004 in einer application.ini-Datei.
Ist es möglich, Java-Optionen basierend auf Umgebungsvariablen beim Start der Anwendung dynamisch zu übergeben?
Ich habe dies lokal auf einem Ubuntu 16.10 getestet und es funktioniert. Die Interpolation sollte nicht vom Skript ausgeführt werden, sondern von der Shell, die das Skript aufruft. – Muki
Welche Methode hast du benutzt? – novon
Ich baute [dieses Projekt] (https://github.com/muuki88/sbt-native-packager-examples/tree/master/simple-deb) mit 'sbt stage' und nannte das Skript mit' ./target/universal/stage/bin/mukis-application-conf -Dexample.greeting = $ PATH' und alles erschien wie erwartet – Muki