2015-10-29 77 views
7

所以我知道,你可以使用-e像傳遞環境變量來泊塢窗容器:如何將系統屬性傳遞給碼頭集裝箱?

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

但我需要通過一個系統屬性泊塢窗容器,因爲這是我跑我的JAR:

java -Denviroment=dev -jar myjar.jar 

那麼如何在Docker中傳遞-D系統屬性?像:

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

@downvoters請解釋一下,或提供答案 – feco

回答

11

使用您傳遞到對java命令容器中的變量:

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

你也可以使用下面的start.sh入口點爲泊塢容器,確保使用數組語法,例如:

Dockerfile:

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

實際start.sh腳本:

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

然後,你可以直接通過Java系統屬性到您的應用程序運行搬運工集裝箱參數:

docker run myDockerImage "-Dvar=var1"