Docker學習-jenkins+github實現持續集成和部署


ChuanGoing 2019-12-15

  上一篇介紹了docker環境搭建,本篇繼續深入,結合jenkins利用docker-compose容器編排簡單介紹下如何實現個人學習的持續集成/部署。

本篇學習曲線:

1.安裝/運行jenkins容器

2.asp.net core web項目配置

3.jenkins配置github代碼管理

4.示例演示

安裝/運行jenkins容器

1.登錄服務器運行命令,拉取jenkins鏡像(注意jenkins tag):

docker pull jenkins/jenkins 

啟動jenkins容器:

docker run -d --name jenkins -p 8081:8080 -p 50000:50000 -v /root/jenkins_home:/var/jenkins_home -v /usr/bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/bin/docker-compose:/bin/docker-compose jenkins/jenkins

上面命令稍作解釋:-d標識后台運行,-name標識鏡像名,-p指定主機端口-容器內部端口映射,-v標識主機目錄-容器卷映射(將容器目錄掛載到主機目錄,以便持久化數據)

注意我這里-v /var/run/docker.sock:/var/run/docker.sock命令實現容器內部響應docker命令,詳細說明請看關於/var/run/docker.sock

2.輸入服務器ip+jenkins端口

 

 jenkins容器運行后,第一次使用admin賬號登錄,admin密碼可以在:/容器掛載路徑/secrets/initialAdminPassword文件中查看。

登錄后就是選擇默認模式安裝插件,等待插件安裝完成后自動進入頁面(如因網速等原因導致插件安裝失敗,去系統管理-插件管理手動安裝即可)

進入到jenkins主頁:

 

 

asp.net core web項目配置

1.新建asp.net core web項目並上傳至github倉儲

2.配置jenkins/github webhook,使得有代碼提交到github后自動觸發消息發送訂閱目標

jenkins關聯github webhook配置請參考:https://www.jianshu.com/p/07b60b788088 

 

jenkins配置github代碼管理

登錄jenkins,新建自由風格軟件項目

 

 源碼管理設置項目地址即訪問憑證

 

 勾選如上選項(github代碼提交自動觸發構建任務)

 

 構建腳本如上,簡單說明下:

#移除docker構建過程臨時鏡像(無鏡像名和tag:none<none>)

docker image prune -f 

jenkins接收到github觸發構建時間時,代碼下載到:{容器掛載目錄}/workspace/{jenkins項目名稱},注意這里時在jenkins容器內執行shell命令,因此絕對路徑為jenkins內部的絕對路徑,進入到代碼存儲位置:cd /var/jenkins_home/workspace/WorkPipeline

執行docker-compose構建命令

有關於docker-compose.yml即Dockerfile文件,請看本篇末尾github項目鏈接

示例演示

提交代碼,

 

jenkins工作台可以看到正在構建

 

 查看構建日志:

 

 

 

 項目構建成功,docker-compose.yml文件中將主機端口映射到webonline容器5000端口

 

 現在,瀏覽器輸入:http://{服務器ip}:5000

 

 web項目成功部署

本示例中的web項目及相關dockerfile配置見github鏈接:https://github.com/ChuanGoing/DockerMain.git


免責聲明!

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



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