CI與CD之Docker上安裝Jenkins


一.CI,CD,Jenkins的介紹

CI:持續集成(Continuous integration,簡稱 CI),在傳統的軟件開發環境中,有集成,但是沒有持續集成這種說法,長時間的分支與主干脫離,導致分支與主干可能存在較大偏差,在集成代碼的時候可能需要花費數小時更久的時間來修復代碼,以便最終將代碼集成主干(俗稱"集成地獄"或"集成災難");而CI旨在鼓勵團隊成員進行頻繁集成(例如每小時或至少每天一次來避免這種情況的出現,通過自動檢測、拉取、構建和(在大多數情況下)進行單元測試的過程,來保障代碼的質量可以進行下一步的使用,這也是持續集成的目的,CI是屬於開發人員的自動化流程。
 
CD:持續交付(Continuous Delivery)和持續部署(Continuous Deployment),這里查閱了一些資料,並簡單總結了一下:
  
  1.持續交付意味着所有的變更都可以隨時交付生產使用,強調的是一種可交付的能力

  2.持續部署意味着所有被發現的release candidate 並且通過所有質量測試的變更都會被自動部署到生產環境中,強調的是一種方式

 

Jenkins:Jenkins是開源CI&CD軟件領導者,並擁有眾多插件來支持它用於持續、自動的構建/測試軟件項目、監控外部任務的運行
 

二.在docker上安裝Jenkins

選擇jenkins的鏡像文件,這里推薦使用jenkinsci/blueocean,該鏡像包含當前的長期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆綁了所有Blue Ocean插件和功能。這意味着你不需要單獨安裝Blue Ocean插件,鏡像地址: https://hub.docker.com/r/jenkinsci/blueocean/

docker run \
  -u root \
  --rm \
  -d \
  -p 8083:8080 \
  -p 50000:50000 \
  -v /data/jenkins:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

參數說明:

--rm 關閉時自動刪除Docker容器(下圖為實例)。如果您需要退出Jenkins,這可以保持整潔;
-d 在后台運行容器;
-p 映射容器服務的8080端口到宿主機的8090(我的8080已經被Apollo占用,所以改為8083,沒被占用的可以不用改,發現很多工具都喜歡用8080端口,比如:Apollo,SkyWalking,還有這里的Jenkins等)端 口,下面的50000也是一樣,將容器的端口50000 映射到主機上的端口50000;
-v 這里是將本機的“/data/jenkins”目錄掛載到容器中的/var/jenkins_home中,作為jenkins的存儲目錄;/var/run/docker.sock 表示Docker守護程序通過其監聽的基於Unix的套接字。該映射允許jenkinsci/blueocean 容器與Docker守護進程通信。
jenkinsci/blueocean 是鏡像名稱
 
docker run的時候,如果鏡像文件不存在,則會先自動拉取該鏡像,然后再啟動容器,通過下圖可以看到有提示說明本地不存在該鏡像,然后自動拉取的過程

等待安裝完成之后,打開瀏覽器訪問:http://部署的機器ip:8083 (沒改的話默認8080),就可以看到Jenkins的界面

 

然后通過以下命令訪問Jenkins控制台日志,復制出密碼(在兩組星號之間的就是生成好的管理員密碼)如圖
docker logs <CONTAINER ID>

 

復制出密碼后,按照頁面的提示,粘貼過去,點擊繼續就進入下一步驟了

這里點擊安裝推薦的插件,然后等待安裝完成
 
插件安裝完成后,可根據提示創建用戶或者繼續使用admin,后面默認點擊保存並完成,就可以進入Jenkins的首頁了

到這里,Jenkins部署流程就已經結束了,再分享兩個可能用到的命令:

1.訪問Jenkins / Blue Ocean Docker容器

docker exec -it <CONTAINER ID> bash

2.訪問Jenkins控制台日志

docker logs <CONTAINER ID> 
上面獲取管理員密碼就是就是用的這個命令,部署下來還挺快的,大家動手試試吧!




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM