如何传递系统属性到docker集装箱?
所以我知道你可以通过使用-e来将环境variables传递给docker容器:
docker run -it -e "var=var1" myDockerImage
但是我需要将系统属性传递给docker容器,因为这是我运行JAR的方式:
java -Denviroment=dev -jar myjar.jar
那么如何在Docker中传递-D系统属性? 喜欢:
docker run -it {INSERT Denviroment here} myDockerImage
在java命令中使用你传入容器的variables:
docker run -it -e "ENV=dev" myDockerImage java -Denvironment=$ENV -jar myjar.jar
也可以使用下面的start.sh
ENTRYPOINT作为Docker容器,确保使用数组语法,例如:
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 $@
然后,您可以直接将Java系统属性作为docker run容器parameter passing给您的应用程序:
docker run myDockerImage "-Dvar=var1"