Docker+Jenkins持續集成環境(1)使用Docker搭建Jenkins+Docker持續集成環境

Docker+Jenkins持續集成環境(1)使用Docker搭建Jenkins+Docker持續集成環境

 

本文介紹如何經過Jenkins的docker鏡像從零開始構建一個基於docker鏡像的持續集成環境,包含自動化構建、發佈到倉庫\並部署上線。html

0. 前置條件

服務器安裝docker,並啓動docker swarmgit

注意docker啓動時,須要開啓tcp端口web

1.Jenkins 安裝

1.1 命令行啓動:

安裝比較簡單,直接運行docker

docker run -p 8080:8080 -p 50000:50000 -d -v /home/jenkins-home-docker:/var/jenkins_home jenkins/jenkins:lts

運行後查看日誌,獲取token,打開ip:8080,輸入token,安裝經常使用插件服務器

1.2 使用swarm集羣管理工具

在services裏,添加服務markdown

enter description here

2.Jenkins 插件安裝

咱們須要一些插件支持ssh

  • Docker plugin : 提供docker 構建和發佈
  • SSH plugin : 提供經過SSH在遠程主機執行命令,用於部署服務
  • maven plugin: 支持maven

系統管理-插件管理裏進行安裝便可。maven

2.1 docker 配置

「系統管理-系統設置-雲」 裏新增
enter description heretcp

注意docker host url須要加上tcp://svn

2.2 ssh主機 配置

「系統管理-系統設置-SSH remote hosts」 裏配置SSH遠程主機

enter description here

2.3 配置下email

在系統設置裏直接設置,配置下smtp

2.4 配置jdk、maven

在系統管理-全局工具配置裏設置JDK自動安裝

enter description here

maven一樣配置便可

3.Jenkins 項目配置

3.1 新建項目

咱們是maven項目,選擇maven

enter description here

3.2 配置源碼管理

首先配置源碼,能夠是git或者svn,項目組用的是svn

enter description here

3.3 配置觸發器

配置自動構建,勾選POLL SCM,配置5分鐘檢查一次,當svn發生變化時,會自動啓動構建

enter description here

3.4 配置Build

簡單的maven項目,構建使用pom.xml,執行package -DskipTests

enter description here

3.5 配置Post Steps

Post Steps是指構建完成執行的步驟,咱們會實現構建docker,發佈docker和部署服務

3.5.1 配置docker

點擊add post-build step,選擇Build/publish docker image:

enter description here

選擇cloud爲先前配置的docker-cloud,image填寫私服發佈地址,勾上push image。

enter description here

這樣配置,構建完成後會自動push到私服。

3.5.2 配置遠程部署

咱們使用docker stack來部署服務

首先,編寫docker-compose.yml

version: "3" services:  backend:  image: 192.168.86.8:5000/allinone-service-cicd  deploy:  replicas: 1  restart_policy:  condition: on-failure  ports: - "8007:8006"  networks: - webnet networks:  webnet:

保存到docker服務器,好比/root/allinone/allinone-service/allinone目錄

而後,添加post-build step:

enter description here

選擇配置好的遠程docker主機:

enter description here

填入命令:

cd /root/allinone/allinone-service/allinone
docker stack down allinone-cicd docker stack deploy -c docker-compose.yml allinone-cicd
  • docker stack down 將原先服務下線
  • docker stack deploy -c 從新部署服務

4 開始構建

4.1 手動構建

回到工程,點擊當即構建,第一次構建會自動下載jdk,maven,會比較慢

enter description here

等待一會,構建成功:

9e70992ebc17: Pushing [===============================================> ] 42.66MB/45.02MB 9e70992ebc17: Pushing [=================================================> ] 44.96MB/45.02MB 9e70992ebc17: Pushing [==================================================>] 45.02MB 9e70992ebc17: Pushed latest: digest: sha256:5df6c97d6173527bc92ddc436fcef063069cd1cd3d0da8a0c74d2238443ae4d6 size: 1582 Docker Build Done [SSH] script: cd /root/allinone/allinone-service/allinone docker stack down allinone-cicd docker stack deploy -c docker-compose.yml allinone-cicd [SSH] executing... Removing service allinone-cicd_backend Removing network allinone-cicd_webnet Creating network allinone-cicd_webnet Creating service allinone-cicd_backend [SSH] completed [SSH] exit-status: 0  Finished: SUCCESS

若是配置了郵件通知,會收到構建成功郵件。

4.2 自動構建

SVN提交一個變動,等幾分鐘,查看Subversion Polling Log,已經有記錄了,發現已經自動構建了一個版本

enter description here

完美!


做者:Jadepeng
出處:jqpeng的技術記事本--http://www.cnblogs.com/xiaoqi

相關文章
相關標籤/搜索