Docker學習筆記五:Docker生成jenkins容器,支持Java Web項目持續集成、持續部署


一、創建jenkins容器:

1.拉取jeknin鏡像

sudo docker pull jenkins

2.創建一個jenkins目錄

sudo mkdir /jenkins

3.在jenkins目錄下創建一個Dockerfile

sudo touch Dockerfile

4.為了在jenkins容器中具有執行sudo命令的權限,在Dockerfile添加如下內容:

FROM jenkins
USER root
RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins


5.創建新的jenkins鏡像

sudo docker build -t zss/jenkins:1.0 .

6.創建jenkins容器

sudo docker run -p 8080:8080 --name jenkins     

-v /usr/bin/docker:/usr/bin/docker                                         

-v /var/run/docker.sock:/var/run/docker.sock                                              //將宿主機中docker掛載到jenkins容器中,以便在jenkins容器中執行docker命令

-v /usr/jdk/jdk1.7.0_25:/usr/java/jdk1.7.0_25                                            //將宿主機中jdk掛載到jenkins容器中

-v /usr/tomcat/apache-tomcat-7.0.29:/usr/tomcat/apache-tomcat-7.0.29     //將宿主機中tomcat掛載到jenkins容器中

-v /usr/maven/apache-maven-3.3.9:/usr/maven/apache-maven-3.3.9           //將宿主機中tomcat掛載到jenkins容器中

zss/jenkins:1.0

7.在瀏覽器中輸入http://localhost:8080,填寫啟動jenkins時出現的密碼

二、配置jenkins:

1.安裝svn、maven插件

 

 2.在jenkins中配置jdk、maven如圖:

 

三、配置Java web項目:

1.創建一個maven風格的test項目

2.配置test

 

四、書寫Shell腳本來構建Java Web鏡像和容器:

1.在Post Steps目錄中選擇

填寫如下Shell腳本

#!/bin/bash
  imageId=`sudo docker images|grep -i test|awk '{print $3}'`
  echo "Test鏡像ID = "$imageId
  containId=`sudo docker ps -a |grep -i test|awk '{print $1}'`
  echo "Test容器ID = "$containId
  project=/var/jenkins_home/workspace/test/src/main/resources/docker
#判斷是否存在舊的Test鏡像
  if test -z "$imageId"
  then
     echo "Test鏡像不存在"
  else
     if test -z "$containId"
     then
         echo "Test容器不存在"
     else
         echo "Test容器將要被執行stop命令"
         sudo docker stop test
         echo "Test容器處於stop狀態"
     fi
     echo "舊Test鏡像將要被刪除"
     sudo docker rmi -f $imageId
     echo "成功刪除舊Test鏡像"
  fi
#Dockerfile所在目錄
  sudo mv $project/Dockerfile /usr
#切換目錄至usr
  cd /usr
#將Tms war包拷貝到Dockerfile所在目錄下
  sudo mv /var/jenkins_home/workspace/test/target/test.war .
  echo "Test鏡像構建中:------->"
#構建Tms鏡像
  sudo docker build -t test .
#判斷是否存在舊的Tms容器
  if test -z "$containId"
  then
    echo "Test容器不存在"
  else
    echo "舊Test容器將要被刪除"
    sudo docker rm -f $containId
    echo "成功刪除舊Test容器"
  fi
#創建容器
  echo "開始創建新Test容器"
  sudo docker run -d -p 8088:8080 -v /usr/logs:/usr/tomcat/logs --name test test
  echo "新Test容器創建成功"

2.點擊立即保存,立即構建

 


免責聲明!

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



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