当前位置: 首页 > 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

相关文章:

  • 6月8日python-AI代码
  • 面向对象之 继承中的成员访问特点
  • TCP相关问题 第一篇
  • 鸿蒙的一些布局
  • 深入剖析JVM垃圾回收,高并发场景JVM性能调优,内存泄露分析,以及如何避免OOM
  • 8个AI软件介绍及其工作原理讲解
  • Day 21
  • Hilt在android项目中使用的注解说明
  • MS8911S/8921S/8922M/8931S 是一款具有内部迟滞的高速比较器
  • MCP是啥?技术原理是什么?Windows系统配置MCP,Cursor使用MCP
  • Selenium4+Python的web自动化测试框架
  • 职位竞聘BA商业推理测评管理人员TAS倍智题库天翼云益丰等企业
  • 轻量级数学竖式训练方案解析
  • 并发和并行
  • 操作系统期末版
  • 大模型在蛛网膜下腔出血预测与诊疗方案制定中的应用研究
  • 重复文件管理 一键清理重复 图片 文档 免费 超轻量无广告
  • 在网络排错中,经常会用到的操作命令和其作用
  • 【OpenCV】使用opencv找哈士奇的脸
  • RabbitMQ 各类交换机
  • 某网站开发项目成本估计/推广网络广告
  • 网站上地图怎么做的/搜狗登录入口
  • 宁乡建设局网站/站长工具seo推广秒收录
  • 制作网站 太原/百度宣传广告要多少钱
  • 厦门网站制作网页/百度竞价排名魏则西事件分析
  • 巩义网站建设价格/百度快速排名 搜