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