2015-10-29 7 views
7

Ich weiß also, Sie Umgebungsvariablen zu einem Docker Behälter mit -en wie passieren können:Wie System-Eigenschaft an Docker-Container übergeben?

docker run -it -e "var=var1" myDockerImage 

Aber ich brauche eine Systemeigenschaft zu einem Docker Behälter passieren, denn das ist, wie ich meine JAR laufen:

java -Denviroment=dev -jar myjar.jar 

Also wie kann ich eine -D Systemeigenschaft in Docker übergeben? Wie:

docker run -it {INSERT Denviroment here} myDockerImage 
+0

@downvoters bitte erklären, oder teilen Antworten – feco

Antwort

11

Verwenden Sie die Variable, die Sie in den Container auf dem Java-Befehl übergeben:

docker run -it -e "ENV=dev" myDockerImage 
java -Denvironment=$ENV -jar myjar.jar 
2

Man kann auch verwenden, um die folgenden start.sh ENTRYPOINT für die Docker Behälter, stellen Sie sicher, die Array-Syntax zu verwenden, zB:

Dockerfile:

... 
ENTRYPOINT ["/start.sh"] 

Die tatsächliche start.sh Skript:

#!/bin/bash 
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" 
exec $JAVA_HOME/bin/java -jar myjar.jar [email protected] 

Dann können Sie einfach die Java-Systemeigenschaften passieren direkt auf Ihre Bewerbung als Docker Laufbehälter Argumente:

docker run myDockerImage "-Dvar=var1" 
Verwandte Themen