springboot项目配置动态注入与docker设置环境变量

news/2024/11/29 6:32:11/

1.springboot怎么配置信息动态注入?2.docker怎么在镜像启动的时候注入env环境变量?带着这些问题我开始探索实验并把结果以及常用的命令记录下。

springboot动态注入配置信息。

这是一个很简单的问题,但是我不擅长记命令,只是知道实用jar -jar 启动springboot项目的时候添加几个参数,具体的参数我是一个记不住,也不知道这些命令是怎么配置的,这里就简单整理一下。

springboot的配置优先级 默认配置 <配置文件 <命令配置

 1、设置数据库连接地址url为空打包。

#这里是数据库配置 数据库的连接地址 现在我把url设置为空然后打包jar
spring:datasource:#数据源基本配置username: rootpassword: jishuzhaidriver-class-name: com.mysql.cj.jdbc.Driverurl: 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、注入参数启动。

这个-D 是增加了我对java执行命令的认识

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、自定义注入参数字段。

整个url字段全部注入现在太难输入了,整个url只有ip地址是变化的这里可以简化一下看下面配置:brief:mysql:host: #自定义的参数spring:datasource:#数据源基本配置username: rootpassword: jishuzhaidriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://${brief.mysql.host}:3306/brief_min?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8type: com.alibaba.druid.pool.DruidDataSource
重新打包然后运行:java -jar -Dbrief.mysql.host=127.0.0.1 brief-plus_oa.jar #启动成功

5、注入多个参数。

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、常用启动参数。

设置配置文件:端口,参数等

设置日志输出

设置虚拟机设置

设置编码

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后面的参数名称不区分大小写

 

2. docker动态注入env环境变量

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 在容器启动后执行 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环境变量。 -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


http://www.ppmy.cn/news/41715.html

相关文章

Qt Quick - ProgressBar

ProgressBar使用总结一、概述二、使用三、定制化一、概述 ProgressBar 就是进度条。该值应该随着进度定期更新。范围由from和to定义&#xff0c;这个定义的就是区间值&#xff0c;它们都可以包含任何值。 ProgressBar {value: 0.5}ProgressBar还支持一种特殊的不确定模式&#…

6.【动手学深度学习v2】 矩阵计算

6. 矩阵计算【动手学深度学习v2】 李沐 B站&#xff1a;https://space.bilibili.com/1567748478/channel/seriesdetail?sid358497 课程主页&#xff1a;https://courses.d2l.ai/zh-v2/ 教材&#xff1a;https://zh-v2.d2l.ai/ 课件&#xff1a;https://courses.d2l.ai/zh-v2/a…

java StringBuffer和StringBuilder

目录一、概述二、StringBuffer和StringBuilder区别三、StringBuffer使用一、概述 String类是字符串常量&#xff0c;是不可更改的常量。而StringBuffer是字符串变量&#xff0c;它的对象是可以扩充和修改的。 StringBuffer是使用缓冲区的&#xff0c;本身也是操作字符串的&…

【中级软件设计师】—数据库系统考点总结篇(三)

【中级软件设计师】—数据库系统考点总结篇&#xff08;三&#xff09; 课程大纲与考点分布 1 数据库系统的体系结构 分布式数据库的透明性 1.1 三级模式—两级映射 1.2 数据库的设计过程 1.3 E-R模型 首先每个实体要单独转成一个关系模式&#xff0c;总共三个实体三个关系模式…

在外web浏览器远程访问jupyter notebook服务器【内网穿透】

文章目录前言视频教程1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口5. 固定公网地址转载自远控源码文章&#xff1a;公网远程访问jupyter notebook【cpolar内网穿透】 前言 Jupyter Notebook&#…

CesiumForUnreal实现鹰眼地图(MiniMap)效果

文章目录 1.实现目标2.实现过程3.参考资料1.实现目标 基于CesiumForUnreal插件加载的在线地形和影像数据,使用Widget实现鹰眼小地图的效果,GIF动图如下: 2.实现过程 在UE开发中,常用的以Widget方法实现小地图的形式有两种。一种是动态的小地图,即地图的纹理图片会发生变化…

Chat GPT太强,多种玩法曝光

1、模拟面试、考试&#xff0c;备考等&#xff0c;以面试为例&#xff0c;让它扮演一个角色 先让它扮演互联网行业的商业分析师 2、写各种发言稿、文章、报告&#xff0c;给它你的明确要求和目标&#xff0c;以发言稿为例&#xff0c;输入继续&#xff0c;可以持续优化 3、…

测试:腾讯云轻量4核8G12M服务器CPU流量带宽系统盘

腾讯云轻量4核8G12M应用服务器带宽&#xff0c;12M公网带宽下载速度峰值可达1536KB/秒&#xff0c;折合1.5M/s&#xff0c;每月2000GB月流量&#xff0c;折合每天66GB&#xff0c;系统盘为180GB SSD盘&#xff0c;地域节点可选上海、广州或北京&#xff0c;4核8G服务器网来详细…