当前位置: 首页 > news >正文

Docker部署SpringBoot项目

准备好pom.xml的插件

  • 1.准备好pom.xml的插件
  • 2.安装docker:
  • 3.安装mysql(服务器放行3307端口):
  • 4.构建springboot项目镜像
  • 5.启动项目

1.准备好pom.xml的插件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.7.RELEASE</version><relativePath/></parent><groupId>com.weiz</groupId><artifactId>student-management-system</artifactId><version>0.0.1-SNAPSHOT</version><name>学生信息管理系统</name><description>Student Management System</description><packaging>jar</packaging><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.24</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-springsecurity5</artifactId><version>3.0.4.RELEASE</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.8.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.8.0</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.4</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency></dependencies><build><plugins><!--maven依赖打jar包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>UTF-8</encoding></configuration></plugin><!-- 静态网页资源打jar包插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.2.0</version><executions><execution><id>copy-resources</id><phase>validate</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${project.build.directory}/classes</outputDirectory><resources><resource><directory>src/main/resources</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>mapper/**</include><include>static/**</include><include>templates/**</include></includes></resource></resources></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.1.2</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib/</outputDirectory></configuration></execution></executions></plugin></plugins></build>
</project>

这样修改静态网页资源打jar包插件后,您的静态资源(templates/, static/等)将会被打包进最终的JAR文件中,路径位于BOOT-INF/classes/目录下【用winrar打开检查】

2.安装docker:

yum install docker

检查安装是否成功

docker --version

启动docker

systemctl start docker

更换镜像源

sudo vim /etc/docker/daemon.json
{"registry-mirrors":["https://m9r2r2uj.mirror.aliyuncs.com"]
}

重启docker

systemctl restart docker

3.安装mysql(服务器放行3307端口):

docker pull mysql:8.0.24

创建自定义网络,确保MySQL容器和Spring Boot容器在同一个网络

docker network create student-net

运行mysql(修改MySQL大小写敏感配置):

docker run --name mymysql -e MYSQL_ROOT_PASSWORD=admin -d -p 3307:3306 \--network student-net \--restart unless-stopped \-v mysql_data:/var/lib/mysql \mysql:8.0.24 \--lower_case_table_names=1

这样主机的 3307 端口会映射到容器的 3306 端口
navicat连接方式如下:
主机:服务器ip
端口:3307
用户名:root
密码:admin

4.构建springboot项目镜像

4.1对数据库连接等url起别名(用于docker镜像间的连接):
因为使用的是自定义网络组网 → 应用配置中写 容器名:3306

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://mymysql:3306/student_manage_system?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=admin

mysql8以后使用com.mysql.cj.jdbc.Driver

4.2对项目进行jar打包(cmd命令与src同级目录下输入)

mvn clean package -Dmaven.test.skip=true

这个是跳过错误进行打包

4.3上传jar包到服务器root目录

4.4创建目录,拷贝application.properties

mkdir -p src/main/resources/

将application.properties拷贝一份到src/main/resources目录下

4.5创建dockerfile文件:

vim Dockerfile
FROM openjdk:17-jdk
EXPOSE 8080VOLUME /tmpENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneADD student-management-system-0.0.1-SNAPSHOT.jar /app.jar
ADD src/main/resources/application.properties /config/ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=classpath:/,file:/config/"]

4.6构建镜像:

docker build -t student-management-system:1.0 .

查看jar包镜像:

docker images

5.启动项目

Spring Boot应用启动命令

docker run -d --name student-app \--network student-net \-p 8080:8080 \-p 9326:9326 \student-management-system:1.0

注意这里的student-net

查看项目启动日志:

docker logs -f student-app
http://www.xdnf.cn/news/933841.html

相关文章:

  • window下配置ssh免密登录服务器
  • 深入解析机器学习的心脏:损失函数及其背后的奥秘
  • Ubuntu 上安装 Git LFS
  • Electron通信流程
  • Linux68 FTP 测试 上传下载
  • 2025-06-04-低代码平台及相关技术介绍
  • uni-app学习笔记二十九--数据缓存
  • Redis集群模式之主从复制模式(2)
  • 字典序排数
  • 标准解读;高校数据安全分类分级指南【附全文阅读】
  • 虚拟机时间同步
  • Python Web项目打包(Wheel)与服务器部署全流程
  • 前端知识导图
  • 嵌入式面试常问问题
  • Spring框架的设计模式
  • 31.1linux中Regmap的API实验(知识)_csdn
  • 【版本控制】Git 和 GitHub 入门教程
  • Flink CDC 中 StartupOptions 模式详解
  • LambdaqueryWrapper的介绍与使用
  • F(x,y)= 0 隐函数 微分法
  • STL详解——list的模拟实现
  • 【CSS-7】深入解析CSS伪类:从基础到高级应用
  • 【Linux】gcc、g++编译器
  • 香橙派3B学习笔记8:snap安装管理软件包_打包俩个有调用的python文件
  • 机器人/智能车纯视觉巡线经典策略—滑动窗口+直方图法
  • Unity3D 开发中的创新技术:解锁 3D 开发的新境界
  • SQL 注入开放与修复
  • NLP学习路线图(三十三): 文本分类
  • LiveCycle Designer 创建提交表单
  • FlexRay总线