springboot動態(tài)注入配置與docker設置環(huán)境變量的方法
1.springboot怎么配置信息動態(tài)注入?2.docker怎么在鏡像啟動的時候注入env環(huán)境變量?帶著這些問題我開始探索實驗并把結果以及常用的命令記錄下。
1.springboot動態(tài)注入配置信息。
這是一個很簡單的問題,但是我不擅長記命令,只是知道實用jar -jar 啟動springboot項目的時候添加幾個參數(shù),具體的參數(shù)我是一個記不住,也不知道這些命令是怎么配置的,這里就簡單整理一下。
springboot的配置優(yōu)先級 默認配置 <配置文件 <命令配置
1、設置數(shù)據(jù)庫連接地址url為空打包。
#這里是數(shù)據(jù)庫配置 數(shù)據(jù)庫的連接地址 現(xiàn)在我把url設置為空然后打包jar spring: datasource: #數(shù)據(jù)源基本配置 username: root password: jishuzhai driver-class-name: com.mysql.cj.jdbc.Driver url: type: com.alibaba.druid.pool.DruidDataSource
2、測試啟動。
java -jar brief-plus_oa.jar #嘗試啟動應用 會報以下錯誤
#Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
3、注入?yún)?shù)啟動。
這個-D 是增加了我對java執(zhí)行命令的認識
java -jar -Dspring.datasource.url="jdbc:mysql://127.0.0.1:3306/brief_min?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8" brief-plus_oa.jar #啟動項目成功 注意這里的spring.datasource.url 要和配置文件里面的字段一致
4、自定義注入?yún)?shù)字段。
整個url字段全部注入現(xiàn)在太難輸入了,整個url只有ip地址是變化的這里可以簡化一下看下面配置: brief: mysql: host: #自定義的參數(shù) spring: datasource: #數(shù)據(jù)源基本配置 username: root password: jishuzhai driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://${brief.mysql.host}:3306/brief_min?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8 type: com.alibaba.druid.pool.DruidDataSource 重新打包然后運行: java -jar -Dbrief.mysql.host=127.0.0.1 brief-plus_oa.jar #啟動成功
5、注入多個參數(shù)。
java -jar -Dspring.profiles.active=dev -DBRIEF.MYSQL.HOST=192.168.2.5 -DSPRING.REDIS.HOST=192.168.2.5 brief-plus_oa.jar
6、常用啟動參數(shù)。
設置配置文件:端口,參數(shù)等
設置日志輸出
設置虛擬機設置
設置編碼
java -jar -Dserver.port=10000 brief-plus_oa.jar #設置端口
java -jar -DSPRING_PROFILES_ACTIVE=dev brief-plus_oa.jar #設置生效的配置文件為dev
java -jar -Dlogging.path=/Users/fuping/Desktop/log brief-plus_oa.jar #設置日志文件存儲目錄
java -jar -Dbrief.mysql.host=127.0.0.1 brief-plus_oa.jar & #啟動打印進程id
java -jar -Dfile.encoding=utf-8 brief-plus_oa.jar #設置文件編碼 windows服務器啟動亂碼時使用
nohup java -jar brief-plus_oa.jar > log.txt 2>&1 & #后臺啟動 并且將啟動日志輸入到log.txt文件 并且打印進程id
java -Xms256m -Xmx512m brief-plus_oa.jar #設置虛擬機內存地址
注意 -D后面的參數(shù)名稱不區(qū)分大小寫
2. docker動態(tài)注入env環(huán)境變量
1、Dockerfile配置。
FROM openjdk:17 # 鏡像是從 openjdk:11-jdk-alpin 繼承而來的 VOLUME /root/tmp # 表示掛載了 /root/tmp 目錄到容器中 ADD build/libs/brief-plus_oa-0.0.1-SNAPSHOT.jar apprun.jar # 將bootJar 添加到鏡像中根目錄下 命令為 apprun.jar ENTRYPOINT ["java","-jar","/apprun.jar"] # ENTRYPOINT 在容器啟動后執(zhí)行 java 命令來運行程序 # 設置容器時間 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone EXPOSE 8099
2、構建docker鏡像。
sudo docker build -t brief_plus_ao:v1.0.0.1 -f ./Dockerfile .
3、運行鏡像注入env環(huán)境變量。 -e
sudo docker run -p 8090:8090 -e BRIEF.MYSQL.HOST=192.168.31.113 -e SPRING.REDIS.HOST=192.168.31.113 brief_plus_ao:v1.0.0.1
到此這篇關于springboot動態(tài)注入配置與docker設置環(huán)境變量的方法的文章就介紹到這了,更多相關springboot注入docker環(huán)境變量內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
flyway實現(xiàn)java 自動升級SQL腳本的問題及解決方法
大家在平時開發(fā)自己寫SQL語句忘記在所有環(huán)境執(zhí)行,需要新增環(huán)境做數(shù)據(jù)遷移,那么遇到這樣的問題該如何解決呢?本文通過場景分析給大家介紹java 自動升級SQL腳本的策略,感興趣的朋友一起看看吧2021-07-07Java反射(JDK)與動態(tài)代理(CGLIB)詳解
下面小編就為大家?guī)硪黄獪\談Java反射與動態(tài)代理。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-08-08Java?ClassLoader虛擬類實現(xiàn)代碼熱替換的示例代碼
本文主要介紹了Java?ClassLoader虛擬類實現(xiàn)代碼熱替換的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06SpringBoot使用Mybatis-Generator配置過程詳解
這篇文章主要介紹了SpringBoot使用Mybatis-Generator配置過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-02-02使用?EasyCode生成springboot+mybatis基礎程序的實現(xiàn)示例
本文主要介紹了使用?EasyCode生成springboot+mybatis基礎程序的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01