CI與CD之Docker上安裝Jenkins

一.CI,CD,Jenkins的介紹

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

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

 

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> 
上面獲取管理員密碼就是就是用的這個命令,部署下來還挺快的,你們動手試試吧!
相關文章
相關標籤/搜索