Jenkins+GitLab+Docker CI/CD 全自动流水线搭建

一、文档说明

本文为 CI/CD 流水线从零到生产落地的纯实操干货手册,弱化冗余理论,只讲核心配置逻辑+精准页面点击步骤+标准化脚本复制即用。全程傻瓜式图解操作,无需反复摸索,按照步骤一步步配置,即可快速搭建一套稳定、可落地、可直接上线投产的 Jenkins+GitLab+Docker 全自动持续集成、持续交付流水线,彻底告别手动打包、手动上传、手动部署的低效运维模式。

二、实操前置环境准备

服务端基础环境已提前部署就绪,无需从零搭建服务器与基础组件。已预配置就绪内容:Jenkins 服务正常运行、GitLab 代码仓库已创建、Docker 运行环境适配完成、镜像仓库连通正常、服务器 SSH 密钥互通、Jenkins 账号与全局凭证提前录入完毕。实操仅需自备本地电脑,通过 Git 工具与浏览器完成页面配置即可。

三、第一步:本地 Git 环境基础核验配置

3.1 打开 Git Bash 命令终端

操作位置:电脑桌面任意空白区域,鼠标右键单击空白处,在弹出菜单中选择【Git Bash Here】,打开黑色命令行终端即可,后续所有 Git 命令均在此终端执行。

图文示意:桌面右键菜单,直接点击 Git Bash 入口即可进入命令行窗口。

3.2 核验本地 Git 安装有效性

打开终端后,输入版本核验命令并回车执行,终端正常回显 Git 版本号,即代表本地环境正常,可正常拉取代码、提交代码、推送远程仓库。

核验命令:git --version

3.3 克隆项目代码并编译环境核验

先执行克隆命令拉取远程 GitLab 项目代码到本地,等待代码下载完成后进入项目根目录,执行编译核验命令,终端输出 BUILD SUCCESS 成功标识,代表本地开发环境配置正常,编译依赖齐全,可进入 Jenkins 云端流水线配置环节。

克隆命令:git clone 项目远程 GitLab 仓库地址

编译核验命令:mvn clean compile

四、第二步:浏览器登录 Jenkins 管理后台

打开任意浏览器,输入 Jenkins 访问地址,输入账号密码完成登录,所有流水线新建、配置、调试、查看运行状态均在 Jenkins 后台操作完成。

Jenkins 访问地址:http://服务器IP:8080

图文示意:Jenkins 登录首页,输入账号密码后点击登录按钮,进入后台管理主界面。

五、第三步:Jenkins 新建流水线任务标准流程

5.1 点击首页新建任务按钮

在 Jenkins 首页左上角,找到【新建任务】核心功能按钮,鼠标左键单击进入任务创建页面。

图文示意:Jenkins 首页左上角红圈标注新建任务按钮,点击即可创建流水线项目。

5.2 填写流水线任务名称

在任务名称输入框中,按照统一规范命名,格式简洁清晰,便于后续管理、排查与维护,命名格式建议:项目名称-cicd-pipeline。

图文示意:名称输入框位置示意,按规范填写自定义流水线任务名称。

5.3 选择流水线任务类型

页面下滑,务必选中【流水线】类型,不要选择自由风格、Maven 项目等其他类型,选错会导致流水线脚本无法识别、后续配置全部失效。

图文示意:任务类型选择区域,勾选流水线选项,标注禁止选择其他类型。

5.4 点击确定进入核心配置页

页面滑动至底部,点击右下角【确定】按钮,跳转至流水线专属配置页面,开始核心参数绑定与仓库关联配置。

图文示意:页面底部确定按钮位置,点击进入流水线配置界面。

六、第四步:流水线关联 Git 仓库核心配置

进入流水线配置页面后,只下滑找到【流水线】模块,页面所有其他配置保持默认不动,仅按步骤修改指定核心项即可,多余配置无需改动。

6.1 流水线定义选择对应模式

第一个下拉框选择:Pipeline script from SCM,代表流水线脚本托管在 Git 代码仓库中,不在 Jenkins 后台手动编写,配置统一可追溯、环境不混乱。

图文示意:下拉框选择页面,标注选中对应脚本管理模式。

6.2 版本控制选择 Git

SCM 版本控制下拉选择 Git,用于绑定远程代码仓库地址,授权 Jenkins 自动拉取代码、监听代码提交触发构建。

图文示意:SCM 选择 Git 选项位置标注。

6.3 粘贴 Git 仓库 URL 地址

在仓库地址输入框,粘贴项目 GitLab 远程仓库地址,保证地址无空格、无字符缺失,避免代码拉取失败。

图文示意:仓库地址输入框粘贴位置红圈标注。

6.4 选择预配置账号凭证

凭证下拉框直接选择已提前配置好的 Git 账号凭证,无需手动新建、无需明文输入账号密码,安全且便捷。

图文示意:凭证下拉选择位置,直接选中已有凭证即可。

6.5 填写项目主干分支

分支输入框填写:*/main 或 */master,根据项目实际主干分支填写,保证流水线监听正确代码分支。

图文示意:分支名称填写位置标注。

6.6 脚本路径固定填写 Jenkinsfile

脚本路径一字不差填写:Jenkinsfile,大小写严格一致,无后缀、无多余字符。Jenkins 会自动从代码仓库读取该流水线执行脚本。

图文示意:脚本路径输入框固定填写内容标注。

6.7 点击保存配置生效

页面滑动至最底部,点击【保存】按钮,所有仓库关联与流水线基础配置正式生效。

图文示意:底部保存按钮点击位置标注。

七、第五步:本地项目新建 Jenkinsfile 流水线脚本

在本地项目根目录,新建无后缀文件,命名为 Jenkinsfile,脚本全量复制粘贴即可,仅需修改项目名称、镜像仓库地址两项参数,其余代码无需任何修改,直接通用可用。

脚本内容:pipeline {
agent any
tools {
maven 'M3'
jdk 'JDK17'
}
environment {
// 仅需修改下方两行参数,其余配置禁止改动
APP_NAME = '你的项目名称'
DOCKER_REGISTRY = '公司镜像仓库地址'
// 参数修改结束,下方代码无需调整
DOCKER_IMAGE = "{DOCKER_REGISTRY}/\{DOCKER\_REGISTRY\}/{DOCKER_REGISTRY}/{APP_NAME}:KaTeX parse error: Can't use function '\(' in math mode at position 60: …{ stage\̲(̲\&\#39;1\-拉取代码\…{DOCKER_IMAGE}")
}
}
}
stage('4-推送镜像仓库') {
steps {
withCredentials([usernamePassword(credentialsId: 'docker-cred', usernameVariable: 'USER', passwordVariable: 'PWD')]) {
sh '''
echo "$PWD" | docker login ${DOCKER_REGISTRY} --username $USER --password-stdin
docker push ${DOCKER_IMAGE}
'''
}
}
}
stage('5-自动部署测试服务器') {
steps {
withCredentials([sshUserPrivateKey(credentialsId: 'server-ssh', keyFileVariable: 'key')]) {
sh '''
ssh -i ${key} root@测试服务器IP "
docker stop ${APP_NAME} || true
docker rm ${APP_NAME} || true
docker pull ${DOCKER_IMAGE}
docker run -d --name ${APP_NAME} -p 8080:8080 ${DOCKER_IMAGE}
"
'''
}
}
}
}
post {
success {echo '✅流水线部署成功'}
failure {echo '❌流水线执行失败,查看日志排查问题'}
}
}

图文示意:本地文件命名截图,严格命名为 Jenkinsfile,禁止添加任何文件后缀。

八、第六步:Git 提交配置文件至远程仓库

打开 Git Bash,依次执行三条 Git 命令,逐行输入回车执行,将本地 Jenkinsfile 配置文件推送至远程 Git 仓库,流水线自动触发条件准备完成。

第一条指令:git add .

第二条指令:git commit -m "新增CI/CD流水线配置"

第三条指令:git push

图文示意:Git 命令终端输入页面,三条命令逐行执行位置标注。

九、第七步:首次手动构建核验流水线有效性

7.1 点击立即构建按钮

返回 Jenkins 流水线任务主页,点击左侧【立即构建】按钮,手动触发第一次流水线构建,用于校验所有配置是否正常可用。

图文示意:立即构建按钮位置红圈标注,点击启动首次构建。

7.2 查看流水线运行状态

页面左下角点击构建序号,进入任务详情,打开 Blue Ocean 可视化界面,直观查看每一个阶段运行进度、执行日志与运行结果。

图文示意:构建任务入口与 Blue Ocean 可视化查看界面示意。

7.3 流水线成功验收标准

流水线所有阶段全部显示绿色对勾,代表编译、打包、镜像构建、推送、远程部署全流程无报错,流水线配置完全正常可用。

图文示意:流水线绿色成功对勾页面截图,作为配置完成验收依据。

十、第八步:全自动流水线最终效果验收

本地修改任意业务代码,重新执行 Git 提交推送命令,无需手动操作 Jenkins,流水线自动触发构建、自动编译打包、自动构建镜像、自动推送仓库、自动部署至测试环境。访问服务地址,代码修改内容正常生效,即代表整套 CI/CD 全自动流水线落地完成。

十一、落地总结

整套 CI/CD 流水线搭建完成后,彻底脱离手动运维部署模式,实现代码提交即自动集成、自动构建、自动打包、自动部署,提升研发交付效率,减少人为操作失误,迭代发布更稳定、回滚更快速,适合各类 Java 项目生产常态化使用。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐