Docker中實現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實戰(zhàn)詳解
1、前言
持續(xù)集成(CI/CD)是一種軟件開發(fā)的經(jīng)驗總結(jié)。它用于幫助開發(fā)團隊和交付團隊實現(xiàn)頻繁且快速的集成,以及測試他們的工作成果,以盡可能快地發(fā)現(xiàn)項目開發(fā)和交付工程中的錯誤。越頻繁,越早的項目集成與項目交付,則意味著問題會被越早發(fā)現(xiàn)。因此,通過持續(xù)集成 ( CI/CD)可以及時發(fā)現(xiàn)和解決代碼故障,提高代碼質(zhì)量,減少故障處理成本等。

2、什么是CI/CD
CI/CD 是一種通過在應用的開發(fā)階段引入自動化來頻繁向客戶交付應用的方法。CI/CD 包含以下3 個概念:
- CI(Continuous Integration):持續(xù)集成。
- CD(Continuous Delivery):持續(xù)交付。
- CD(Continuous Deployment):持續(xù)部署。
而Jenkins作為一個開源的,也是被使用最多的持續(xù)集成工具,在項目中也是被廣泛使用。今天就以Jenkins為例來進行介紹。
3、部署Jenkins
由于Jenkins是基于Java語言開發(fā)的,因此需要下安裝JDK環(huán)境,這里安裝了JDK8.

3.1、下載Jenkins
可以直接從官網(wǎng)下載Jenkins.war然后上傳到服務器。Jenkins download and deployment
需要注意的是jenkins支持的JDK版本,從官方文檔中可以看出幾個LTS版本所需要的java環(huán)境。

由于我們JDK環(huán)境是java8,因此這里下載這里下載的是2.346.3版本的war包。
快速下載地址:Index of /war-stable/2.346.3
wget --no-check-certificate https://get.jenkins.io/war-stable/2.346.3/jenkins.war
這里由于鏡像問題,需要多嘗試幾次。

3.2、啟動Jenkins
下載后,啟動Jenkins:
java -jar jenkins.war
輸出以下信息則表示啟動成功。

3.3、訪問Jenkins頁面
瀏覽器訪問http://192.168.74.128:8080/。

后續(xù)的Jenkins安裝步驟這里忽略,教程應該很多。

安裝完成后,進入到Jenkins主頁面。
4、Jenkins部署一個應用
傳統(tǒng)的Jenkins構(gòu)建應用這里就不贅述了,這里是Docker專欄,所以我們重點講下面一節(jié),實現(xiàn)Docker應用的持續(xù)集成和部署。
5、Jenkins實現(xiàn)Docker應用的持續(xù)集成和部署
在Docker應用開發(fā)中,最常見的就是使用Dockerfile文件,可以使用代碼倉庫管理他。
一般來說企業(yè)中的代碼倉庫都是私有的,部門會自己搭建私有的代碼倉庫,如SVN、GitLab等。這里方便演示,我就不自己搭了,使用Github直接演示(主要還是懶)。
部署Jenkins的服務器,必須提前安裝Git。
5.1、創(chuàng)建Dockerfile
在我們本地創(chuàng)建一個Dockerfile文件,里面實現(xiàn)一個nginx的簡單頁面:
FROM nginx RUN echo '<h1>this is jenkins build demo,version:1</h1>' > /usr/share/nginx/html/index.html

將文件提交到Github倉庫中。

同時在倉庫中的Settings中配置webhook,Payload URL配置我們Jenkins的地址,用于每次我們提交代碼時都向Jenkins發(fā)送一個http請求。

5.2、集成Jenkins和Docker
Jenkins中創(chuàng)建一個Freestyle project的任務。

在源碼管理中配置Git相關(guān)信息。

接著在構(gòu)建選項中,選擇“執(zhí)行shell”。

在命令對話框中輸入構(gòu)架容器命令:
docker build -t my_jenkins_docker_demo . docker run -d -p 8081:80 my_jenkins_docker_demo

點擊保存后,在點擊立即構(gòu)建。

構(gòu)建成功后,訪問地址:http://192.168.74.128:8081:

6、小結(jié)
至此,完成了Jenkins和Docker的集成,從而可以實現(xiàn)應用的CI/CD。在實際項目開發(fā)中,可能會涉及大量的程序代碼,以及依賴的庫和環(huán)境,但使用Jenkins實現(xiàn)CI/CD的過程都大同小異。
以上就是Docker中實現(xiàn)CI和CD的實戰(zhàn)詳解的詳細內(nèi)容,更多關(guān)于Docker實現(xiàn)CI和CD的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
docker+daocloud實現(xiàn)前端項目自動構(gòu)建部署
這篇文章主要介紹了docker+daocloud實現(xiàn)前端項目自動構(gòu)建部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
docker?run?-d和docker?run?-it的區(qū)別詳解
記得第一次接觸docker的時候,教程中寫著docker?run?-it之類的命令,當時對這個-it選項是一知半解,下面這篇文章主要給大家介紹了關(guān)于docker?run?-d和docker?run?-it的區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-05-05
Docker+Nginx+KeepaLived實現(xiàn)Nginx一主一從高可用方式
在CentOS7主從服務器上部署Nginx容器并配置Keepalived實現(xiàn)高可用,通過虛擬IP自動切換,主從均需安裝Keepalived,配置健康檢查腳本監(jiān)控Nginx狀態(tài),故障時自動重啟或切換虛擬IP,需關(guān)閉防火墻和SELinux,并確保腳本有執(zhí)行權(quán)限2025-07-07

