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 进行自动化管理。
相关推荐
chen9453 小时前
mysql 3节点mgr集群部署
运维·后端
LH_R3 小时前
OneTerm开源堡垒机实战(三):功能扩展与效率提升
运维·后端·安全
dessler4 小时前
Hadoop HDFS-高可用集群部署
linux·运维·hdfs
少妇的美梦1 天前
logstash教程
运维
chen9451 天前
k8s集群部署vector日志采集器
运维
chen9451 天前
aws ec2部署harbor,使用s3存储
运维
東雪蓮☆1 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
qq_264220891 天前
LVS负载均衡群集和LVS+Keepalived群集
运维·负载均衡·lvs
乌萨奇也要立志学C++1 天前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
雨落Liy1 天前
Nginx 从入门到进阶:反向代理、负载均衡与高性能实战指南
运维·nginx·负载均衡