2014-11-26 7 views
3

Docker가있는 Jetty 9에 Java WAR 파일을 배포하려고합니다. Docker의 링크 기능을 사용할 수 있도록 환경 변수를 통해 데이터베이스 URI 문자열, loglevel 등을 구성하고 싶습니다.env 변수를 사용하여 Jetty 응용 프로그램 구성

그러나 내가 java -jar start.jar을 통해 응용 프로그램을 시작하면 설정 한 환경 변수를 응용 프로그램에서 사용할 수 없습니다.

내 응용 프로그램에 환경 변수를 전달하는 가장 간단한 방법은 무엇입니까?

+0

대신 속성을 사용할 수 있습니까? (시스템 속성'-Dkey = val' 또는 속성 파일에서와 같이) –

답변

1

사용하여 시스템 환경 변수 (일명 System.getenv(String))는 지원하지 않습니다 부두의 start.jar

그 지원을위한 부두와 기능 요청을 제출하시기 바랍니다.

그러나 Jetty start.jar 프로세스는 시스템 속성 또는 시작 속성으로 속성을 지원한다는 것을 알고 있습니다. 명령 줄 또는 ${jetty.base}/start.ini

+1

다음과 같이 속성을 사용하려고합니다 :'''System.getProperties(). contains ("dbhost")'''- 그러나''' dbhost = "localhost"'''또는'''-Ddbhost = "localhost"'''는 start.ini 파일에 적용되지 않습니다. – Roberto

0

나는 방파제에 대한 해결책을 찾을 수있었습니다. Dockerfile에 JAVA_OPTIONS을 설정하기 만하면됩니다.

내 경우에 관해서는 전체 Dockerfile은 다음과 같습니다

FROM jetty:9.2.10 
MAINTAINER Me "[email protected]" 
ENV spring.profiles.active=dev 
ENV JAVA_OPTIONS="-Dkey=value" 
ADD myWar.war /var/lib/jetty/webapps/ROOT.war 
관련 문제