從零開始使用Jenkins來構建Docker容器(Ubuntu 14.04)

當開發更新了代碼,提交到Gitlab上,而後由測試人員觸發Jenkins,因而一個應用的新版本就被構建了。聽起來貌似很簡單,duang~duang~duang,我用了是這樣,大家用了也是這樣,看起來這個過程很自動化,其實這裏面加了不少特技,根本就沒有這樣的頭髮,不對,根本就沒有這樣簡單的方式,其環境搭建的過程十分繁瑣,jenkins的上下文關係配置更是至關困難。今天我來介紹一種簡單的新方法-使用Jenkins來構建一個apache容器。git

 

如下操做的目標:jenkins放置在宿主機內(Ubuntu14.04),apache容器放置在容器裏,之後apache鏡像一作修改,觸發構建一個jenkins的job,宿主機會停掉原來的容器,生成一個新的容器。github

 

下面進入正式環節。docker

1.安裝Jenkinsshell

#wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | #sudo apt-key add -  
#sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'  
#sudo apt-get update  
#sudo apt-get install jenkins  

 

2.登錄http://IP:8080,進入jenkins,在http://IP:8080/pluginManager/available安裝一些必要的插件SCM Sync Configuration Plugin ,GitHub plugin ,GIT plugin ,GIT client plugin ,安裝結束後重啓jenkins.apache

 

3.從新登錄http://IP:8080,進入jenkins,新建一個名爲apache的Item.vim

  •  配置以下面截圖

 

  關聯的github中一個apache演示的URL,地址爲https://github.com/dockerdemo/apache.gitgitlab

  shell腳本以下,該腳本會從github上(若是有本地gitlab操做同理)測試

#!/bin/sh
id
set +e
echo '>>> Get old container id'

CID=$(docker ps | grep "apache" | awk '{print $1}')

echo $CID

/usr/local/bin/docker build -t apache /var/lib/jenkins/jobs/apache/workspace | tee /var/lib/jenkins/jobs/apache/workspace/Docker_build_result.log
RESULT=$(cat /var/lib/jenkins/jobs/apache/workspace/Docker_build_result.log | tail -n 1)

#if [["$RESULT" != *Successfully*]];then
#  exit -1
#fi

echo '>>> Stopping old container'

if [ "$CID" != "" ];then
  /usr/local/bin/docker stop $CID
fi

echo '>>> Restarting docker'
sudo service docker.io restart
sleep 5
  
echo '>>> Starting new container'
/usr/local/bin/docker run -p 3000:80 -d apache

 

4.配置結束後,保存網站

 

5.配置jenkins用戶ui

  此時還不能當即構建,由於jenkins觸發腳本並非root用戶,所以須要將jenkins免用戶,並將用戶加入到docker組,不然獲取不到容器ID.

root@iZ2893wjzgyZ:~# vim /etc/sudoers

# User privilege specification
root    ALL=(ALL:ALL) ALL
jenkins ALL=(ALL:ALL) ALL

jenkins@iZ2893wjzgyZ:~$ sudo usermod -G docker jenkins

 

6.開始構建,在jenkins的build記錄中能夠看到輸出,因爲jenkins會自動把github上的文件給下載下來放在workspace目錄中,所以,觸發腳本後,直接開始構建apache鏡像。

7.如今查看一下鏡像和容器,登錄apache網站驗證

容器生成的apache頁面打開以下

相關文章
相關標籤/搜索