当前位置: 首页 > news >正文

淘客返利系统的CI/CD流水线搭建:Docker镜像构建与K8s部署实践

淘客返利系统的CI/CD流水线搭建:Docker镜像构建与K8s部署实践

大家好,我是 微赚淘客系统3.0 的研发者省赚客!

在微赚淘客系统3.0的演进过程中,为提升交付效率与系统稳定性,我们基于 GitLab CI + Harbor + Kubernetes 构建了完整的 CI/CD 流水线。从代码提交到生产环境部署,全程自动化,确保每次发布可追溯、可回滚、高可靠。

一、项目结构与Dockerfile设计

系统采用 Spring Boot 构建,主模块位于juwatech.cn.rebate包下。项目根目录包含标准Dockerfile

# 使用官方 OpenJDK 17 镜像 FROM openjdk:17-jdk-slim # 设置工作目录 WORKDIR /app # 复制 JAR 文件 COPY target/rebate-system-3.0.jar rebate-system.jar # 暴露端口 EXPOSE 8080 # 启动应用 ENTRYPOINT ["java", "-jar", "rebate-system.jar"]

Maven 打包配置确保生成可执行 JAR:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>juwatech.cn.rebate.RebateApplication</mainClass></configuration></plugin></plugins></build>

二、GitLab CI 流水线定义

.gitlab-ci.yml定义四阶段流水线:build → test → build-image → deploy

stages:-build-test-build-image-deployvariables:DOCKER_IMAGE:harbor.juwatech.cn/rebate/rebate-system:${CI_COMMIT_SHORT_SHA}K8S_NAMESPACE:rebate-prod# 构建阶段build:stage:buildimage:maven:3.8-openjdk-17script:-mvn clean package-DskipTestsartifacts:paths:-target/*.jar# 单元测试test:stage:testimage:maven:3.8-openjdk-17script:-mvn testcoverage:'/Total.*?([0-9]{1,3})%/'# 构建并推送镜像build-image:stage:build-imageimage:docker:20.10services:-docker:20.10-dindbefore_script:-echo "$HARBOR_PASSWORD"|docker login harbor.juwatech.cn-u "$HARBOR_USER"--password-stdinscript:-docker build-t $DOCKER_IMAGE .-docker push $DOCKER_IMAGEonly:-main# 生产部署deploy-prod:stage:deployimage:bitnami/kubectl:latestscript:-sed "s|{{IMAGE}}|$DOCKER_IMAGE|g" k8s/deployment.yaml|kubectl apply-f--kubectl rollout status deployment/rebate-deployment-n $K8S_NAMESPACE--timeout=300senvironment:name:productiononly:-main

三、Kubernetes 部署清单

k8s/deployment.yaml模板使用占位符{{IMAGE}}供 CI 替换:

apiVersion:apps/v1kind:Deploymentmetadata:name:rebate-deploymentnamespace:rebate-prodspec:replicas:3selector:matchLabels:app:rebate-systemtemplate:metadata:labels:app:rebate-systemspec:containers:-name:rebate-appimage:{{IMAGE}}ports:-containerPort:8080env:-name:SPRING_PROFILES_ACTIVEvalue:"prod"-name:DB_HOSTvalueFrom:secretKeyRef:name:rebate-db-secretkey:hostresources:requests:memory:"512Mi"cpu:"200m"limits:memory:"1Gi"cpu:"500m"livenessProbe:httpGet:path:/actuator/healthport:8080initialDelaySeconds:60periodSeconds:30readinessProbe:httpGet:path:/actuator/healthport:8080initialDelaySeconds:10periodSeconds:10---apiVersion:v1kind:Servicemetadata:name:rebate-servicenamespace:rebate-prodspec:selector:app:rebate-systemports:-protocol:TCPport:80targetPort:8080

数据库凭证通过 Secret 管理:

kubectl create secret generic rebate-db-secret\--from-literal=host=db.juwatech.cn\--from-literal=username=rebate_user\--from-literal=password='S3cr3tP@ss!'\-n rebate-prod

四、Java 应用启动类示例

主启动类位于指定包路径,确保与 Dockerfile 一致:

packagejuwatech.cn.rebate;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassRebateApplication{publicstaticvoidmain(String[]args){SpringApplication.run(RebateApplication.class,args);}}

五、回滚与版本追踪

每次部署均基于 Git Commit ID 构建唯一镜像标签,支持快速回滚:

# 查看历史 ReplicaSetkubectl get rs -n rebate-prod# 回滚至上一版本kubectl rollout undo deployment/rebate-deployment -n rebate-prod

同时,Prometheus + Grafana 监控 Pod 状态、CPU、内存及 HTTP 错误率,确保部署质量。

本文著作权归 微赚淘客系统3.0 研发团队,转载请注明出处!

http://www.jsqmd.com/news/341451/

相关文章:

  • 2026年2月全自动贴袋机/免烫贴袋机/全自动贴兜机/免烫贴兜机/全自动开袋机/全自动开兜机行业TOP5服务商全景评估报告 - 2026年企业推荐榜
  • PAM-COMPOSITE 复合材料仿真数据导出操作手册(适配可视化工具专用)
  • 2026年靠谱的APP开发公司有哪些?基于多维度数据的客观盘点
  • 2026智能咖啡机推荐 哪家值得信赖口碑好性价比高服务好质量优 - 品牌2025
  • 淘宝返利软件的可观测性架构:Prometheus与Grafana监控体系搭建
  • 2026年优质客服系统厂商推荐,覆盖在线试用、智能应答与全渠道售后 - 品牌2025
  • 西门子PLC设备锁机程序探秘:S7 - 200cn与S7 - 200 smart的独特应用
  • 国内外市场占有率高、质量好且售后服务好的介电常数测定仪厂家推荐 - 品牌推荐大师1
  • 淘宝客返利系统的用户数据安全设计:脱敏存储与接口访问控制
  • 一天一个Python库:pygments - 强大的代码高亮和格式化工具
  • 避坑指南|2026年2月敏感肌护肤品终极测评:这些误区别踩,选对比选贵重要 - 速递信息
  • 淘客系统的佣金资金流处理:数据追溯与账户交易的安全机制
  • # 缓存与数据库的协调策略【缓存更新时机】
  • 2026医用级硅胶生产厂家推荐榜:三大标杆企业助力医疗设备精准化升级 - 速递信息
  • Opencv 学习笔记:提取轮廓中心点坐标(矩计算法)
  • 美通卡回收的实操图文指南 - 京回收小程序
  • 2026厂房洁净室工程怎么选?5家行业标杆企业值得关注 - 品牌2025
  • 电子制造企业CRM选型指南:5款热门客户管理系统对比分析(2026)
  • 中国城市夜间热岛强度空间分异数据集(2000-2024,1km 逐月):动态特征与生态效应
  • 2026厂房机电安装工程哪家强?国内靠谱服务商推荐合集 - 品牌2025
  • 这次终于选对!倍受青睐的AI论文写作软件 —— 千笔
  • 测完这批工具 9个AI论文写作软件测评:研究生毕业论文+开题报告高效写作指南
  • 2026年天津婚姻财产律师联系电话推荐:服务特色与沟通要点 - 十大品牌推荐
  • 2026年天津离婚房产律师联系电话推荐:高效沟通与权益保障 - 十大品牌推荐
  • 你就再也不用担心断网导致白编译了!
  • 2026年天津离婚房产律师联系电话推荐:核心律师深度解析 - 十大品牌推荐
  • CVE-2025-3248 Langflow远程代码执行漏洞利用工具
  • 河南艺考画室哪家好?河南美术艺考机构盘点!天籁学子以绝对实力领跑2026届统考! - 速递信息
  • 【期货量化实战】期货量化交易策略实盘优化技巧(Python量化)
  • 2026年天津离婚房产律师联系电话推荐:核心联系方式汇总 - 十大品牌推荐