Docker?Compose+Jenkins自動(dòng)化部署流程圖文教程
前言
Jenkins是一個(gè)開源的持續(xù)集成與持續(xù)交付(CI/CD)自動(dòng)化服務(wù)器,基于Java開發(fā),用于自動(dòng)化軟件開發(fā)中的構(gòu)建、測(cè)試和部署流程。
- CI = 持續(xù)集成(檢查代碼好不好)
- CD = 持續(xù)部署 / 交付(把代碼發(fā)到線上跑起來)
CI(Continuous Integration)持續(xù)集成
- 代碼提交后自動(dòng)拉取
- 編譯、構(gòu)建
- 單元測(cè)試
- SonarQube 代碼質(zhì)量掃描
- 檢查有沒有語法錯(cuò)、bug、漏洞
一句話:CI 是 “代碼體檢”,不發(fā)布、不上線、不影響線上環(huán)境。
CD(Continuous Delivery / Deployment)持續(xù)交付 / 部署
- 把構(gòu)建好的包(jar、dist、鏡像)上傳
- 部署到測(cè)試環(huán)境 / 預(yù)發(fā) / 生產(chǎn)
- 重啟服務(wù)
- 發(fā)布上線
一句話:CD 是 “把代碼發(fā)到線上跑起來”,真正影響運(yùn)行環(huán)境。
準(zhǔn)備工作
- 安裝Docker Compose并部署Jenkins和Git服務(wù)
- 建議在宿主機(jī)生成SSH密鑰對(duì),將密鑰掛載到容器
- 將公鑰配置到Codeup代碼倉(cāng)庫(kù)的SSH設(shè)置中
- Jenkins容器內(nèi)部測(cè)試 SSH 連接
Jenkins配置流程
1. 創(chuàng)建job

2. 選擇流水線類型

3. 到這里我們就開始配置Pipeline script,點(diǎn)擊Pipeline語法,來自動(dòng)生成我們需要的配置。

4. 如下圖,我們Git方式,配置Git倉(cāng)庫(kù)地址(SSH協(xié)議),再添加認(rèn)證相關(guān)。

5. 這里我們使用的是秘鑰認(rèn)證方式,由于jenkins是通過docker compose管理容器,推薦在宿主機(jī)上生成密鑰對(duì),然后掛載到容器中,公鑰配置到git倉(cāng)庫(kù)SSH配置中,私鑰粘貼到下圖Key中,這樣jenkins就可以免交互的拉取git倉(cāng)庫(kù) 中的代碼了。

6. 配置完成后,我們就可以生成Pipeline腳本了。點(diǎn)擊下方Generate Pipeline Script,然后復(fù)制方框內(nèi)的內(nèi)容。

7. 編寫我們所需要的Pipeline腳本如下,將其粘貼到script的拉取代碼模塊中,并修改正確的分支,其他模塊內(nèi)容自行編寫。
pipeline {
agent any
stages {
stage('拉取代碼') {
steps {
git(
url: 'git@codeup.aliyun.com:xxxx.git',
branch: 'master',
credentialsId: 'codeup-xxxx' // 你在 Jenkins 中創(chuàng)建的憑證ID
)
}
}
stage('構(gòu)建') {
steps {
sh 'echo "開始構(gòu)建..."'
// 你的構(gòu)建命令,例如:
// sh 'mvn clean package'
// sh 'npm install && npm run build'
}
}
stage('測(cè)試') {
steps {
sh 'echo "運(yùn)行測(cè)試..."'
// sh 'mvn test'
// sh 'npm test'
}
}
}
post {
success {
echo 'Pipeline 執(zhí)行成功!'
}
failure {
echo 'Pipeline 執(zhí)行失敗!'
}
}
}8. 立即構(gòu)建,運(yùn)行測(cè)試

總結(jié)
到此這篇關(guān)于Docker Compose+Jenkins自動(dòng)化部署流程的文章就介紹到這了,更多相關(guān)Docker Compose+Jenkins自動(dòng)化部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何獨(dú)立使用ribbon實(shí)現(xiàn)業(yè)務(wù)客戶端負(fù)載均衡
這篇文章主要為大家介紹了詳解如何獨(dú)立使用ribbon實(shí)現(xiàn)業(yè)務(wù)客戶端負(fù)載均衡,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Mybatis-Plus字段策略FieldStrategy的使用
本文主要介紹了Mybatis-Plus字段策略FieldStrategy的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
SpringBoot項(xiàng)目創(chuàng)建使用+配置文件+日志文件詳解
Spring的出現(xiàn)是為了簡(jiǎn)化 Java 程序開發(fā),而 SpringBoot 的出現(xiàn)是為了簡(jiǎn)化 Spring 程序開發(fā),這篇文章主要介紹了SpringBoot項(xiàng)目創(chuàng)建使用+配置文件+日志文件,需要的朋友可以參考下2023-02-02
Java連接mysql數(shù)據(jù)庫(kù)的詳細(xì)教程(推薦)
這篇文章主要介紹了Java連接mysql數(shù)據(jù)庫(kù)的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Spring Task定時(shí)任務(wù)的完整使用教學(xué)
Spring Task是Spring框架提供的輕量級(jí)定時(shí)任務(wù)工具,它無需依賴額外的第三方庫(kù),直接集成在Spring核心包中,在SpringBoot中,Spring Task提供了自動(dòng)配置支持,只需少量注解即可快速實(shí)現(xiàn)定時(shí)任務(wù)功能,本文給大家介紹了Spring Task定時(shí)任務(wù)的完整使用教學(xué)2026-06-06
Java多線程和并發(fā)基礎(chǔ)面試題(問答形式)
多線程和并發(fā)問題是Java技術(shù)面試中面試官比較喜歡問的問題之一。在這里,從面試的角度列出了大部分重要的問題,感興趣的小伙伴們可以參考一下2016-06-06
如何基于SpringSecurity的@PreAuthorize實(shí)現(xiàn)自定義權(quán)限校驗(yàn)方法
spring Security提供有若干個(gè)過濾器,它們能夠攔截Servlet請(qǐng)求,并將這些請(qǐng)求轉(zhuǎn)給認(rèn)證和訪問決策管理器處理,從而增強(qiáng)安全性,下面這篇文章主要給大家介紹了關(guān)于如何基于SpringSecurity的@PreAuthorize實(shí)現(xiàn)自定義權(quán)限校驗(yàn)方法的相關(guān)資料,需要的朋友可以參考下2023-03-03
Spring boot通過AOP防止API重復(fù)請(qǐng)求代碼實(shí)例
這篇文章主要介紹了Spring boot通過AOP防止API重復(fù)請(qǐng)求代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12

