溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springboot動態(tài)注入配置與docker設(shè)置環(huán)境變量的方法是什么

發(fā)布時間:2023-05-08 14:45:20 來源:億速云 閱讀:101 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了springboot動態(tài)注入配置與docker設(shè)置環(huán)境變量的方法是什么的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇springboot動態(tài)注入配置與docker設(shè)置環(huán)境變量的方法是什么文章都會有所收獲,下面我們一起來看看吧。

一.springboot動態(tài)注入配置信息。

這是一個很簡單的問題,但是我不擅長記命令,只是知道實用jar -jar 啟動springboot項目的時候添加幾個參數(shù),具體的參數(shù)我是一個記不住,也不知道這些命令是怎么配置的,這里就簡單整理一下。

springboot的配置優(yōu)先級 默認(rèn)配置 <配置文件 <命令配置

 1、設(shè)置數(shù)據(jù)庫連接地址url為空打包。

#這里是數(shù)據(jù)庫配置 數(shù)據(jù)庫的連接地址 現(xiàn)在我把url設(shè)置為空然后打包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  #嘗試啟動應(yīng)用 會報以下錯誤
#Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

3、注入?yún)?shù)啟動。

這個-D 是增加了我對java執(zhí)行命令的認(rèn)識

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è)置配置文件:端口,參數(shù)等

設(shè)置日志輸出

設(shè)置虛擬機設(shè)置

設(shè)置編碼

java -jar -Dserver.port=10000 brief-plus_oa.jar #設(shè)置端口
java -jar -DSPRING_PROFILES_ACTIVE=dev  brief-plus_oa.jar #設(shè)置生效的配置文件為dev
java -jar -Dlogging.path=/Users/fuping/Desktop/log brief-plus_oa.jar #設(shè)置日志文件存儲目錄
java -jar -Dbrief.mysql.host=127.0.0.1 brief-plus_oa.jar & #啟動打印進(jìn)程id
java -jar -Dfile.encoding=utf-8  brief-plus_oa.jar #設(shè)置文件編碼 windows服務(wù)器啟動亂碼時使用
nohup java -jar  brief-plus_oa.jar > log.txt 2>&1 & #后臺啟動 并且將啟動日志輸入到log.txt文件 并且打印進(jìn)程id
java -Xms256m -Xmx512m brief-plus_oa.jar #設(shè)置虛擬機內(nèi)存地址

注意 -D后面的參數(shù)名稱不區(qū)分大小寫

二. 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 命令來運行程序
# 設(shè)置容器時間
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 8099

2、構(gòu)建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

關(guān)于“springboot動態(tài)注入配置與docker設(shè)置環(huán)境變量的方法是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“springboot動態(tài)注入配置與docker設(shè)置環(huán)境變量的方法是什么”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI