前言
为实现快速搭建和开发,项目以Springboot框架搭建,springboot搭建的项目可以将项目直接打成jar包并运行,无需自己安装配置Tomcat或者其他服务器,是一种方便快捷的部署方式。
假设项目以最常规的方式打包成一个整体的jar包部署,即配置文件包含在jar包里,就会出现一个问题:项目运行过程中,要改动配置文件的话需要重新打包并部署。
如果将项目的配置文件提取到jar包外统一管理,这样只改动了配置文件重启下服务就可以了,无需重新构建部署。
实现原理
根据yml配置文件加载原理,所有配置文件都会加载,高优先级的配置会覆盖低优先级的内容,且属性互补
Springboot配置文件加载优先级:
项目启动时通过命令的方式指定项目加载核心配置文件Jar包外同级目录的config目录Jar包外同级目录jar包内classPath(即resources目录)的config目录jar包内的classpath目录
一、Liunx部署jar包并外置配置文件
1.将jar包和外部配置文件上传到服务器某个路径下
![在这里插入图片描述](https://img-blog.csdnimg.cn/5687075423554ee9aab95b967c702a20.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTk4MDM0,size_16,color_FFFFFF,t_70#pic_center)
2.在/home/nanshan目录下使用java -jar nandemo-0.0.1-SNAPSHOT.jar &命令启动jar包
执行过程中用到的命令:
netstat -nlp |grep :8080 查看某端口占用的线程的pidkill -9 21322 关闭进程,21322表示上一步查到的进程号
![在这里插入图片描述](https://img-blog.csdnimg.cn/e7ac7c10e9a64c54b0719f953198484d.png#pic_center)
二、Docker部署jar包并外置配置文件
1.将jar包和外部配置文件上传到服务器某个路径下
![在这里插入图片描述](https://img-blog.csdnimg.cn/2974a4d96e914752824d9b97c3097d5c.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTk4MDM0,size_16,color_FFFFFF,t_70#pic_center)
2.在该目录下创建Dockerfile文件
# 拉取一个jdk为1.8的docker镜像
FROM openjdk:8-jdk
# 将项目jar包作为app.jar添加到容器
ADD nandemo-0.0.1-SNAPSHOT.jar app.jar
# 将外部配置文件复制到容器
COPY ./config /home/nandemo/config
# ENTRYPOINT 执行项目 app.jar及外部配置文件,多个配置文件逗号隔开
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=dev", "app.jar","--spring.config.location=/home/nandemo/config/application.yml,/home/nandemo/config/application-dev.yml"]
3. 在/home/nandemo目录下使用 docker build -t xxxxxx . 命令创建镜像
![在这里插入图片描述](https://img-blog.csdnimg.cn/d968a599837a4550b18709f712995051.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTk4MDM0,size_16,color_FFFFFF,t_70#pic_center)
4.使用 docker run -d --name nandemo -p 8080:8080 nandemo:latest启动容器
![在这里插入图片描述](https://img-blog.csdnimg.cn/3bcf61f7a5874307834ece780666164e.png#pic_center)
选项选项简写说明–detach-d在后台运行容器,并且打印容器id–interactive-i即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用-tty-t分配一个伪tty,一般与 -i 连用
5.测试
以下分别为配置文件中参数,接口内容和访问结果。
![在这里插入图片描述](https://img-blog.csdnimg.cn/cee842bc0aa14e1787b9b8d831fe9ccb.png#pic_center)
|