DevOps 实战:Docker + Jenkins 搭建“汇丰级”自动化部署流水线

🚀 DevOps 实战:Docker + Jenkins 搭建“汇丰级”自动化部署流水线

✅ 为什么写这篇?

在汇丰这样的金融巨头中,应用的上线流程必须安全、稳定、可追溯、自动化
这背后依赖 DevOps 能力的支撑——开发提交代码后,系统自动完成构建、测试、部署、验证
本篇将手把手带你用 Docker + Jenkins 搭建一条“银行级”自动化部署流水线,涵盖:

  • 构建阶段(Node 应用打包)
  • 测试阶段(Lint + 单测)
  • 部署阶段(推送 Docker 镜像 + 发布)

📌 场景还原

某业务系统提交新功能后,CI/CD 系统自动拉取代码 → 运行测试 → 构建镜像 → 推送至私有仓库 → 更新容器。


🧰 技术选型

技术用途
Jenkins自动化流水线主控平台
Docker构建部署容器
Git源码管理
Node.js示例业务项目

📦 Jenkins 安装(Docker)

docker run -d --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts

启动后访问 http://localhost:8080,进入 Jenkins Web 界面初始化。


🧱 项目结构示例(Node 应用)

my-app/
├── Dockerfile
├── index.js
├── package.json
├── test/
│   └── basic.test.js
├── .eslintrc.js

🧪 实战代码

1️⃣ index.js
const express = require('express');
const app = express();
app.get('/', (_, res) => res.send('Hello HSBC!'));
app.listen(3000, () => console.log('Server running on port 3000'));
2️⃣ Dockerfile
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "index.js"]
3️⃣ 测试用例 test/basic.test.js
test('1 + 1 = 2', () => {
  expect(1 + 1).toBe(2);
});

🔧 Jenkins Pipeline 脚本(Jenkinsfile)

pipeline {
  agent any

  stages {
    stage('Checkout') {
      steps {
        git 'https://github.com/your-org/hsbc-app.git'
      }
    }
    
    stage('Install') {
      steps {
        sh 'npm install'
      }
    }

    stage('Lint') {
      steps {
        sh 'npx eslint index.js'
      }
    }

    stage('Test') {
      steps {
        sh 'npx jest'
      }
    }

    stage('Build Docker Image') {
      steps {
        sh 'docker build -t hsbc-app:latest .'
      }
    }

    stage('Push to Registry') {
      steps {
        sh 'docker tag hsbc-app:latest registry.hsbc.com/hsbc-app:latest'
        sh 'docker push registry.hsbc.com/hsbc-app:latest'
      }
    }

    stage('Deploy') {
      steps {
        sh 'docker stop hsbc-app || true'
        sh 'docker rm hsbc-app || true'
        sh 'docker run -d --name hsbc-app -p 3000:3000 hsbc-app:latest'
      }
    }
  }
}

🖥️ 输出结果

在 Jenkins Web UI 中:

  • ✅ 每个阶段绿色通过
  • ✅ 服务器上自动部署新版本
  • ✅ 控制台输出清晰展示每一步日志

⚠️ 常见错误总结

错误点描述
❌ Dockerfile 写错路径镜像构建失败
❌ npm 依赖未锁版本每次构建行为不一致
❌ Jenkins 未配置权限拉取代码、推送镜像失败
❌ pipeline 忽略错误错误被吞,导致部署了有问题的版本

✅ 建议做法:

  • set -e 保证每一步失败就终止
  • 加入版本号和 Git commit ID 标识部署来源
  • 多环境部署支持(如 test / prod 区分)

🎯 总结

  • 本文从零构建了 HSBC 级别的 CI/CD 自动化部署流程
  • 使用 Jenkins + Docker 实现从构建、测试到部署的全流程
  • 为大银行、互联网金融公司提供标准化 DevOps 模板
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端付豪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值