2016-07-18 2 views
1

JWT 토큰 솔트 키의 키를 설정하기 위해 인수를 취하는 환경 변수를 사용하는 Java 응용 프로그램을 작성했습니다. Docker Compose에서 명령 변수를 전달할 수있는 방법이 있습니까?Docker 작성자 JVM 매개 변수

java -Djava.security.egd=file:/dev/./urandom -jar /user-profile-api.jar --key=blah 

그리고 고정 표시기 이미지를 실행하면 바로

docker run -p 8080:8080 docker_image --key=blah 
+1

이렇게 이미지를 실행할 수 있습니까? compose 파일의 서비스에 대한'command' 속성으로'--key = blah' 비트를 전달할 수 있습니다. – johnharris85

+0

그게 효과가! 감사! 마음을 답으로 추가하고 그것을 추가할까요? –

+0

다행 이네요, 완료 :) – johnharris85

답변

2

이미 사용하여 고정 표시기 컨테이너를 실행 할 수있는 경우 :

docker run -p 8080:8080 docker_image --key=blah

그런 다음 당신은 단지에 대한 command 속성을 재정의해야 당신의 service --key = 어쩌구에 작성 파일입니다. 따라서 :

services: 
    app: 
    command: --key=blah 
... 
1

한 가지 방법 쉘 스크립트 (예를 들어, bootstrap.sh)에서 java 명령을 넣어, 그리고 명령이 실행되도록 같은 것을 설정합니다 부두 만든 사람. 그리고 bootstrap.sh에서 docker-compose.yml에있는 환경 변수를 통해 키를 삽입하십시오.

예.

bootstrap.sh

build: . 
environment: 
    - SALT_KEY=blah 
command: /opt/app/bootstrap.sh 

은 분명히 당신이 일이에 대한 귀하의 용기에 bootstrap.sh를 패키징 할 것

java -Djava.security.egd=file:/dev/./urandom -jar /user-profile-api.jar --key=$SALT_KEY 

고정 표시기 - compose.yml.

+0

이것이 효과가있는 것처럼 보입니다. 그러나 더 유연 해지는 또 다른 방법이 있습니까? –

+0

일지도 모르지만 융통성은 모호한 용어입니다. 어떤 유연성을 갖기를 원하십니까? – Kevin