Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器

Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器

一、准备

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 项目

image-20230701142546422

2、构建步骤

第一步:打包

D:
cd D:\MyFile\GitHub\perfect-video
mvn clean package -DskipTests

图示

image-20230701142715281

第二步:复制文件

xcopy /y D:\MyFile\GitHub\perfect-video\target\app.jar C:\ProgramData\Jenkins\.jenkins\workspace\perfect-video

图示

image-20230701142757398

第三步:发送文件,并重启容器

image-20230701143002448

猜你喜欢

转载自blog.csdn.net/qq_29689343/article/details/131490310