Docker Compose+Jenkins自动化部署全流程

准备工作

  • 安装Docker Compose并部署Jenkins和Git服务
  • 建议在宿主机生成SSH密钥对,将密钥挂载到容器
  • 将公钥配置到Codeup代码仓库的SSH设置中
  • Jenkins容器内部测试 SSH 连接

Jenkins配置流程

1. 创建job

2. 选择流水线类型

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

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

  1. 这里我们使用的是秘钥认证方式,由于jenkins是通过docker compose管理容器,**推荐在宿主机上生成密钥对,然后挂载到容器中,**公钥配置到git仓库SSH配置中,私钥粘贴到下图Key中,这样jenkins就可以免交互的拉取git仓库 中的代码了。
  1. 配置完成后,我们就可以生成Pipeline脚本了。点击下方Generate Pipeline Script,然后复制方框内的内容。
  1. 编写我们所需要的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 执行失败!'
         }
     }

    }

  2. 立即构建,运行测试

相关推荐
wuxingge3 小时前
docker部署solara音乐播放器
docker·容器
社恐的下水道蟑螂3 小时前
前端面试必问 Git 通关指南:常用命令速查 + merge/rebase 深度辨析,看完再也不慌
前端·git·面试
DanCheOo3 小时前
我写了一个 AI Commit Message 生成器,再也不用想怎么写 git commit 了
git·全栈
❀͜͡傀儡师3 小时前
docker部署Antigravity-Manager
运维·docker·容器·antigravity
sg_knight4 小时前
Docker环境下的MinIO安装,以及如何正确配置数据持久化(避坑篇)
运维·docker·容器·minio·ftp·cos·oss
. . . . .4 小时前
git-ai 项目详解
人工智能·git
晨枫阳4 小时前
Jenkins + Gitee 自动化部署 Vue 项目完整指南
gitee·自动化·jenkins
会飞的大可5 小时前
Docker容器项目无法访问MySQL的解决策略
mysql·docker·容器
New_Horizons6666 小时前
Git 设置命令的别名(alias)
git