目前有發現兩種方法,第一種方法針對springBoot適用
1. 使用環境變量,springboot會將環境變量中對應的值作為配置運行程序。
但環境變量的格式需要注意:spring.datasource.username需要變為SPRING_DATASOURCE_USERNAME(小寫變大寫,大寫前加_,.變_, 如果一個配置是: application.bigApple.name, 則轉換過去的格式是:APPLICATION_BIG_APPLE_NAME)
docker run -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 xxx
2. 使用-D指令。在jvm層面上,D指令是向應用傳遞參數的屬性。
如設置application.yml中的datasource可以使用如下參數
dockerFile中設置如下
java -jar ${JAVA_OPTS} xxx.jar
啟動docker容器時使用以下命令
docker run -e JAVA_OPTS="-Dspring.datasource.username=root -Dspring.datasource.password=123456" xxx