Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器
文章目录
- Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器
- 一、准备
- 1、环境
- 2、基本流程
- 准备步骤
- 基本思路
- 3、相关命令
- 4、Dockerfile 文件
- 5、配置远程服务器、安装和使用 Publish Over SSH 插件
- 二、Jenkins 项目
- 1、创建 `Freestyle project` 项目
- 2、构建步骤
- 第一步:打包
- 第二步:复制文件
- 第三步:发送文件,并重启容器
一、准备
1、环境
- 本地:Windows 10 ;
- 本地:Jenkins + Publish Over SSH 插件;
- 本地:Maven ;
- 远程:Linux ;
- 远程:Docker ;
2、基本流程
准备步骤
- 使用 Dockerfile 构建镜像;
基本思路
-
第一步:使用
mvn clean package -DskipTests
打包 Spring Boot 程序为 jar 包; -
第二步:使用 Windows 命令将 jar 包复制到 jenkins 项目工作目录;
-
第三步:使用 Publish Over SSH 插件将 jar 包发送到远程 Linux 的
/home/zibo/docker/video/app
目录; -
第四步:使用 Publish Over SSH 插件执行
docker restart video-app
重启 video-app 容器;需要构建镜像,如果是第一次启动容器,需要先启动容器,参考下面相关命令。
3、相关命令
### 镜像方式启动
# 构建镜像
docker build -t video-app-image .
# 删除镜像
docker rmi video-app-image
# 启动容器
docker run -itd -p 8081:8080 -v /home/zibo/docker/video/app:/app --name video-app video-app-image
# 重启容器
docker restart video-app
# 删除容器
docker rm video-app
# 查看实时日志
docker logs -f video-app
# 进入容器内部
docker exec -it video-app /bin/bash
# 离开容器
exit
4、Dockerfile 文件
# 该镜像需要依赖的基础镜像
FROM openjdk:17-jdk
# 创建挂载点
VOLUME /app
# 定义工作目录为/app,命令在此目录下执行
WORKDIR /app
# 指定docker容器启动时运行jar包,并将端口设置为8080
ENTRYPOINT ["java", "-jar", "-Dserver.port=8080", "app.jar"]
# 指定端口 8080
EXPOSE 8080
# 指定维护者的名字为zibo
LABEL maintainer="zibo"
5、配置远程服务器、安装和使用 Publish Over SSH 插件
见上一篇文章
Jenkins 发送文件到远程服务器:Publish Over SSH 插件
https://blog.csdn.net/qq_29689343/article/details/131349578
二、Jenkins 项目
1、创建 Freestyle project
项目
2、构建步骤
第一步:打包
D:
cd D:\MyFile\GitHub\perfect-video
mvn clean package -DskipTests
图示
第二步:复制文件
xcopy /y D:\MyFile\GitHub\perfect-video\target\app.jar C:\ProgramData\Jenkins\.jenkins\workspace\perfect-video
图示