Jenkins+Docker自动化部署实战

Jenkins + Docker 一键打包部署项目指南

通过Jenkins流水线集成Docker实现自动化构建、测试和部署,避免常见踩坑点。以下是完整流程:


一、环境准备(前置条件)
  1. 服务器基础环境

    • 安装JDK 11+:$ sudo apt install openjdk-11-jdk
    • 安装Docker:$ curl -fsSL https://get.docker.com | bash
    • 配置Docker用户组:$ sudo usermod -aG docker jenkins
  2. Jenkins安装与配置

    # 安装Jenkins
    wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt update && sudo apt install jenkins
    
    • 关键插件:安装 Docker PipelineGitHub IntegrationBlue Ocean

二、项目配置(核心步骤)
  1. 编写Dockerfile(置于项目根目录)

    FROM openjdk:11
    WORKDIR /app
    COPY target/*.jar app.jar  # 假设Maven构建输出JAR
    EXPOSE 8080
    ENTRYPOINT ["java", "-jar", "app.jar"]
    
  2. Jenkinsfile流水线脚本(置于项目根目录)

    pipeline {
      agent any
      stages {
        stage('Build') {
          steps {
            sh 'mvn clean package'  # Maven构建,其他项目替换对应命令
          }
        }
        stage('Build Docker Image') {
          steps {
            script {
              docker.build("my-app:${env.BUILD_ID}")
            }
          }
        }
        stage('Deploy') {
          steps {
            sh 'docker stop my-app || true'  # 停止旧容器(忽略错误)
            sh 'docker rm my-app || true'
            sh 'docker run -d -p 8080:8080 --name my-app my-app:${env.BUILD_ID}'
          }
        }
      }
    }
    

三、Jenkins任务创建
  1. 新建流水线任务
    • 类型:选择 Pipeline
    • 定义:Pipeline script from SCM → 配置Git仓库地址
  2. 配置Webhook(可选)
    • GitHub仓库 → Settings → Webhooks → 添加 http://<JENKINS_URL>/github-webhook/

四、避坑指南
  1. 权限问题
    • 问题:Jenkins用户无法执行Docker命令
    • 解决:$ sudo usermod -aG docker jenkins 并重启Jenkins
  2. 端口冲突
    • 问题:旧容器未停止导致新容器启动失败
    • 解决:流水线中强制停止旧容器(见上方docker stop ... || true
  3. 镜像版本管理
    • 建议:使用${env.BUILD_ID}作为标签,避免覆盖生产镜像
  4. 构建缓存
    • docker build前添加:sh 'docker system prune -f' 清理无效镜像

五、验证部署
  1. 触发流水线后访问:http://<SERVER_IP>:8080
  2. 查看容器状态:$ docker ps -a | grep my-app

关键提示:首次运行需在Jenkins控制台检查Maven/Docker路径配置(Manage Jenkins → Global Tool Configuration

通过此流程,代码提交后自动触发构建→镜像打包→部署,实现全链路一键化!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虎王科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值