当前位置: 首页
编程语言
Docker Compose+Jenkins自动化部署流程图文教程

Docker Compose+Jenkins自动化部署流程图文教程

热心网友 时间:2026-04-28
转载

前言

在软件开发的快节奏世界里,自动化是提升效率、保障质量的关键。而说到自动化部署,Jenkins 绝对是一个绕不开的名字。它是一款基于Ja va开发的开源持续集成与持续交付(CI/CD)服务器,专门用来搞定软件开发中那些繁琐的构建、测试和部署流程。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

简单来说,CI/CD可以拆解为两个核心环节:

  • CI(持续集成):这就像是给代码做“全面体检”。每当有新的代码提交,系统就会自动拉取代码,然后进行编译、构建、单元测试,甚至用SonarQube这类工具扫描代码质量。整个过程的目标是快速发现问题,但绝不发布上线,完全不影响线上环境的稳定。
  • CD(持续交付/部署):体检通过后,就该“上岗”了。这个环节负责把构建好的成果(比如Jar包、前端Dist目录或Docker镜像)上传,并部署到测试、预发乃至生产环境,最终重启服务,完成上线。一句话,CD是真正让代码在线上“跑起来”的那一步。

理解了这两个概念,我们就能明白,搭建一套CI/CD流水线,本质上是在为团队构建一条从代码到用户的自动化高速公路。

准备工作

在动手配置Jenkins之前,有几项准备工作必不可少。遵循这些步骤,能让你后续的流程走得更加顺畅:

  • 首先,确保你的环境中已经安装好Docker Compose,并用它来部署Jenkins和Git服务。
  • 一个关键建议是:在宿主机(而非容器内)生成SSH密钥对,然后将密钥挂载到Jenkins容器中。
  • 接着,将生成的公钥配置到你使用的Codeup等代码仓库的SSH设置里。
  • 最后,别忘了进入Jenkins容器内部,测试一下SSH连接是否畅通。这几步做好了,就为后续的自动化代码拉取铺平了道路。

Jenkins配置流程

1. 创建job

Docker Compose+Jenkins自动化部署流程图文教程

万事开头,从创建一个新的Jenkins任务开始。这个过程很直观,就像给我们的自动化流水线起个名字、安个家。

2. 选择流水线类型

Docker Compose+Jenkins自动化部署流程图文教程

在众多任务类型中,我们需要选择“流水线”(Pipeline)。这是Jenkins的灵魂所在,它允许我们以代码的方式定义整个构建、测试、部署的流程,灵活且强大。

3. 到这里我们就开始配置Pipeline script,点击Pipeline语法,来自动生成我们需要的配置。

Docker Compose+Jenkins自动化部署流程图文教程

接下来进入核心环节——编写Pipeline脚本。别担心,Jenkins提供了非常友好的“Pipeline语法”生成工具,对于不熟悉的配置,完全可以利用它来辅助生成,能省去不少查阅文档的时间。

4. 如下图,我们Git方式,配置Git仓库地址(SSH协议),再添加认证相关。

Docker Compose+Jenkins自动化部署流程图文教程

流水线的第一步通常是拉取代码。在生成工具中,我们选择Git方式,填入仓库的SSH地址。更关键的一步是配置认证,让Jenkins有权限访问你的代码库。

5. 这里我们使用的是秘钥认证方式,由于jenkins是通过docker compose管理容器,推荐在宿主机上生成密钥对,然后挂载到容器中,公钥配置到git仓库SSH配置中,私钥粘贴到下图Key中,这样jenkins就可以免交互的拉取git仓库 中的代码了。

Docker Compose+Jenkins自动化部署流程图文教程

这里采用SSH密钥认证是最佳实践。尤其当Jenkins运行在Docker容器中时,更推荐在宿主机生成密钥对并挂载进去。把公钥交给Git仓库,把私钥粘贴到Jenkins的凭证配置里(如上图所示)。这样一来,Jenkins就能实现免密、无交互地拉取代码,自动化流程才真正称得上“自动”。

6. 配置完成后,我们就可以生成Pipeline脚本了。点击下方Generate Pipeline Script,然后复制方框内的内容。

Docker Compose+Jenkins自动化部署流程图文教程

所有参数填妥后,点击“Generate Pipeline Script”按钮,一段标准的Git拉取代码脚本就自动生成了。复制这段代码,它就是我们流水线脚本的第一块积木。

7. 编写我们所需要的Pipeline脚本如下,将其粘贴到script的拉取代码模块中,并修改正确的分支,其他模块内容自行编写。

pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                git(
                    url: 'git@codeup.aliyun.com:xxxx.git',
                    branch: 'master',
                    credentialsId: 'codeup-xxxx'  // 你在 Jenkins 中创建的凭证ID
                )
            }
        }
        stage('构建') {
            steps {
                sh 'echo "开始构建..."'
                // 你的构建命令,例如:
                // sh 'mvn clean package'
                // sh 'npm install && npm run build'
            }
        }
        stage('测试') {
            steps {
                sh 'echo "运行测试..."'
                // sh 'mvn test'
                // sh 'npm test'
            }
        }
    }
    post {
        success {
            echo 'Pipeline 执行成功!'
        }
        failure {
            echo 'Pipeline 执行失败!'
        }
    }
}

现在,让我们组装一个完整的流水线示例。将生成的Git脚本粘贴到‘拉取代码’阶段。别忘了根据你的实际情况修改仓库地址、分支名和凭证ID。后续的‘构建’、‘测试’阶段,则需要你填入项目特定的命令,比如Ma ven的`clean package`或NPM的`install && run build`。最后的`post`部分定义了成功或失败后的处理,让流程有始有终。

8. 立即构建,运行测试

Docker Compose+Jenkins自动化部署流程图文教程

脚本编写完成,激动人心的时刻到了:点击“立即构建”。Jenkins会开始执行你定义的流水线,每个阶段的状态都会清晰展示。通过观察控制台输出,你可以验证整个流程是否如预期般运行。这第一次成功的构建,标志着你的自动化部署流水线已经正式启航。

总结

通过以上步骤,我们完成了一套基于Docker Compose和Jenkins的基础CI/CD流水线搭建。从环境准备、密钥配置,到编写Pipeline脚本并成功运行,整个过程其实清晰地勾勒出了自动化部署的核心脉络。关键在于理解每个环节的作用:准备工作是基石,SSH密钥认证是安全畅通的保障,而Pipeline脚本则是驱动整个流程的蓝图。掌握了这个框架,你就可以根据自己项目的具体技术栈(Ja va/Node.js/Python等),去填充“构建”、“测试”乃至“部署”阶段的具体命令,从而打造出一条完全贴合团队需求的、高效可靠的软件交付流水线。

来源:https://www.jb51.net/program/3630122pf.htm

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Composer怎么离线装依赖_Composer无网络安装方案【汇总】

Composer怎么离线装依赖_Composer无网络安装方案【汇总】

离线安装 Composer 依赖,别只拷个锁文件就跑 在离线环境下部署 PHP 项目,很多开发者会下意识地把 composer lock 和 vendor 目录一拷了事,结果运行 composer install 时,要么直接报错,要么看似成功却埋下运行时崩溃的隐患。这背后的根本原因,其实在于 Co

时间:2026-04-28 18:37
Laravel怎么处理自定义日志通道_Laravel按业务分类记录日志【介绍】

Laravel怎么处理自定义日志通道_Laravel按业务分类记录日志【介绍】

在 Lara vel 中新增自定义日志通道需在 config logging php 中配置驱动(如 single daily)、路径、格式器等,通道名须小写无点号,配置后执行 php artisan config:clear,并通过 Log::channel( xxx ) 显式调用,注意权限、le

时间:2026-04-28 18:37
如何在ThinkPHP中通过钉钉机器人发送告警通知_Webhook封装与Markdown格式

如何在ThinkPHP中通过钉钉机器人发送告警通知_Webhook封装与Markdown格式

如何在ThinkPHP中通过钉钉机器人发送告警通知:Webhook封装与Markdown格式 ThinkPHP 里怎么调用钉钉 Webhook 发告警 其实方法很直接,直接用 curl 或者 file_get_contents 发起一个 POST 请求就行,完全不需要额外安装什么 SDK。钉钉机器人

时间:2026-04-28 18:37
怎么利用 Base64 工具类实现图片字节数组与字符串的相互转换

怎么利用 Base64 工具类实现图片字节数组与字符串的相互转换

怎么利用 Base64 工具类实现图片字节数组与字符串的相互转换 先说一个核心概念:Base64 工具类本身不处理任何图片逻辑,它只专注做好一件事——字节数组和字符串之间的编解码。图片最终能否正确还原,完全取决于你传入的字节数组是否完整、格式是否合法。这就好比一个翻译官,他只负责把一种语言翻译成另一

时间:2026-04-28 18:37
如何通过分析 Synchronized 的锁膨胀机制理解从偏向锁到重量级锁的位状态迁移

如何通过分析 Synchronized 的锁膨胀机制理解从偏向锁到重量级锁的位状态迁移

如何通过分析 Synchronized 的锁膨胀机制理解从偏向锁到重量级锁的位状态迁移 简单来说,锁的状态就藏在对象头的标记位里:偏向锁的Mark Word低3位是101,轻量级锁是000,而重量级锁则是010。识别这些位模式,并理解它们之间不可逆的迁移路径,是掌握Synchronized底层机制的

时间:2026-04-28 18:37
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程