jenkins流程概述

1. 需求场景

  • 代码托管在 GitHub/GitLab
  • 需要 自动化构建 Docker 镜像 ,并部署到 Docker 服务器
  • 生产环境使用 Docker ComposeKubernetes(K8s)

2. Jenkins 流程

  1. 拉取代码
  2. 使用 Maven 构建 JAR
  3. 使用 Docker 构建镜像
  4. 推送 Docker 镜像到仓库
  5. 在服务器上运行容器

3. 配置 Jenkins 任务

Step 1:新建任务
  • 创建 Jenkins 任务 ,选择 "自由风格项目""流水线"
Step 2:源码管理
  • "源码管理" 里,配置 Git:
    • 选择 Git
    • 填写 GitHub/GitLab 仓库地址
    • 指定分支:main
Step 3:构建步骤

"构建" 里,选择 执行 Shell,输入以下脚本:

bash 复制代码
# 进入 Jenkins 工作目录
cd /var/jenkins_home/workspace/my_project

# 拉取最新代码
git pull origin main

# 使用 Maven 构建 JAR 包
mvn clean package -DskipTests

# 构建 Docker 镜像
docker build -t myapp:latest .

# 给镜像打标签(可选,适用于推送到私有仓库)
docker tag myapp:latest myregistry.com/myapp:latest

# 推送镜像到 Docker Hub / 私有仓库
docker push myregistry.com/myapp:latest

# 删除旧容器(如果存在)
docker rm -f myapp || true

# 运行新的 Docker 容器
docker run -d --name myapp -p 8080:8080 myregistry.com/myapp:latest

4. Dockerfile 示例

在项目根目录添加 Dockerfile

bash 复制代码
# 使用 JDK 17 作为基础镜像
FROM openjdk:17-jdk

# 复制构建的 JAR 包到容器
COPY target/myapp.jar /app.jar

# 运行应用
ENTRYPOINT ["java", "-jar", "/app.jar"]

5. 触发部署

  • 每次开发人员提交代码到 main 分支,Jenkins 自动:
    1. 拉取代码
    2. 构建 JAR
    3. 制作 Docker 镜像
    4. 推送到 Docker 仓库
    5. 部署到服务器

6. 进阶优化

  • 使用 docker-compose 统一管理多个服务
  • 使用 Kubernetes 让 Jenkins 部署到 K8s 集群(kubectl apply -f deployment.yaml
  • 结合 Nginx / Traefik 实现负载均衡
  • 自动回滚(当部署失败时回滚到上一版本)

总结

  1. 如果不使用容器 ,Jenkins 直接 构建 JAR 并运行(传统方式)。
  2. 如果使用 Docker ,Jenkins 可以 自动构建 Docker 镜像 + 远程部署(现代微服务)。
  3. 如果是大规模服务 ,可以结合 Kubernetes(K8s)+ Jenkins 进行自动化管理。
相关推荐
两点王爷8 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
0+1118 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm
宽海智能仓储物流9 小时前
航发自动化立体库异构系统改造:宽海智能30天联调技术全解析
运维·数据仓库·自动化
鹤落晴春9 小时前
【K8s】从 ConfigMap 到 Argo CD:Kubernetes 配置管理链路
运维·云原生·容器·kubernetes
2601_949499949 小时前
DT‑1414PTZ如何百分百兼容(安华高)HFBR‑1414PTZ
运维·网络·人工智能·科技·光模块
fengyehongWorld9 小时前
Linux 安装frp实现内网穿透
linux·运维·服务器
一技安身10 小时前
【信创】银河麒麟V10服务器使用安装光盘Packages自建本地yum源
linux·运维·服务器
码农客栈11 小时前
Linux I2C驱动实验
linux·运维·驱动开发
爱喝水的鱼丶12 小时前
SAP-ABAP:隐式/显式增强开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流
企业解惑小助手13 小时前
如何禁止文字复制?企业文档防复制项目需求拆解方案
运维·数据库·安全