1. 程式人生 > >springboot之docker啟動參數傳遞

springboot之docker啟動參數傳遞

pom clas java_opts 網上 參數傳遞 朋友 就是 oracl slim

這幾天有網友問,如何在使用docker的情況下傳遞spring.profiles.active=test,也就是說springboot切換配置文件。以往我們直接通過java啟動jar的時候,直接跟上--spring.profiles.active=test或者利用jvm參數-Dspring.profiles.active=test來傳遞。我寫一些命令吧。

非docker下springboot切換配置文件

java -jar test.jar --spring.profiles.active=test #第一種情況切換配置文件

java -Dspring.profiles.active=test -jar test.jar #第二種情況切換配置文件

有朋友會疑惑,通過jvm參數怎麽可以切換呢,其實springboot是支持的哦。

docker下springboot切換配置文件

docker封裝了springboot後切換會多一些步驟,其實也不是很難。筆者找了網上好多文章,並沒有看到通過com.spotify:docker-maven-plugin這個docker打包插件實現的環境變量傳遞參數,也可能是太簡單了,沒人寫,但是我看到好多人需要,我還是寫一下吧。但是網上有通過Dockerfile實現的Env變量傳遞的。下面我貼出pom中的打包插件代碼:

請註意env節點和entryPoint的變化

com.spotifydocker-maven-plugin0.4.11pumelo/${project.artifactId}-${version}frolvlad/alpine-oraclejdk8:slim""[ "sh", "-c", "java $JAVA_OPTS -jar /${project.build.finalName}.jar" ]/${project.build.directory}${project.build.finalName}.jar

測試

從新打包鏡像後,運行

docker run -e JAVA_OPTS=‘-Xms128m -Xmx256m -Dspring.profiles.active=prod‘ -it pumelo/test-1.0.0 /bin/bash

這樣就可以通過jvm參數來切換springboot的配置文件啦。

技術分享圖片

感謝各位看官捧場。

springboot之docker啟動參數傳遞