使用环境变量配置Jetty应用程序

4
我正在尝试使用Docker在Jetty 9中部署Java WAR文件。我想通过环境变量配置数据库URI字符串、日志级别等内容,以便我还可以使用Docker的链接功能。
但是,如果我通过java -jar start.jar启动应用程序,我设置的环境变量对应用程序不可用。
最简单的方法是什么,可以将环境变量传递给我的应用程序?

你能否使用属性呢?(例如系统属性-Dkey=val或属性文件) - Joakim Erdfelt
2个回答

3
我成功找到了Jetty的解决方案。 只需要在Dockerfile中设置JAVA_OPTIONS就可以了。
我的完整Dockerfile如下:
FROM jetty:9.2.10
MAINTAINER Me "me@me.com"
ENV spring.profiles.active=dev
ENV JAVA_OPTIONS="-Dkey=value"
ADD myWar.war /var/lib/jetty/webapps/ROOT.war

1

使用系统环境变量(又称System.getenv(String))不被Jetty的start.jar支持。

如果需要支持,请随时向Jetty提交功能请求。

但请注意,Jetty的start.jar进程支持属性,可以作为系统属性或启动属性。可以在命令行或${jetty.base}/start.ini中设置。


1
我正在尝试使用以下属性:System.getProperties().contains("dbhost") - 但是无论是将dbhost="localhost"添加到start.ini文件中,还是使用-Ddbhost="localhost"都没有起作用。 - Roberto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接