Docker和jenkins實現springboot自動部署


准備:

一個springboot項目、一台虛擬機(centos 7)。

安裝:

  1. linux安裝docker

    更新yum:yum update

    下載docker: yum –y install docker-engine

     

                 2、下載jenkins之前安裝jdk:

    查找所有jdk版本: yum -y list java*

    找到正確得版本:

              

      下載jdk:yum –y install java-1.8.0-openjdk-devel.x86_64

    檢查jdk版本: java –version

    查找java位置:whereis java

                           

      3、下載jenkins:

          yumrepos默認沒有Jenkins,先將Jenkins加入存儲庫yum repos

   sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

        sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

        安裝jenkins yum –y install jenkins

         

          配置jenkins: vi /etc/sysconfig/Jenkins

        原本下圖圈起部分為jenkins8080,我們修改為root9000(0:65535

        中隨便取,只要不端口未被其他進程占用)

         

部署與配置

       1、啟動dockerservice docker start

       2、啟動jenkinsservice jenkins start

          3ipconfigip

       4、在瀏覽器輸入ip:9000,進入初始頁面

         

       5、獲取password tail /var/lib/jenkins/secrets/initialAdminPassword

         

          6、將密碼拷入瀏覽器,continue

       7、點擊推薦安裝插件、之后耐心等待安裝

         

       8、安裝完成進入管理員注冊頁面、根據提示注冊賬號,進入。

                              Tips:如果忘了賬號密碼。

           找到jenkinsconfig.xml: cd /var/lib/Jenkins

         

         修改vi config.xml:刪除下列部分:

         

       9、如果git下不下來,那就去重下

         

         選擇可選插件,搜索git,下載即可。

         

     如果還是不行,自己去找別的教程吧,或者有的時候你重新弄的時候發現你可以下載了。【狗頭】

工程配置

       1、工程根目錄下新建Dockerfile

           

1  FROM: 生成鏡像的jdk環境
2 
3   ADD 將target下的jar包加入鏡像
4 
5  VOLUME
6 
7  EXPOSE 80 docker暴露給外界的端口80
8 
9  ENTRYPOINT 啟動app.jar

           2、新建start.sh       

 1 cd `dirname $0`                 #進入根目錄
 2 
 3 proj_home=$PWD                  #工程根目錄
 4 img_output=${image}          #生成鏡像標簽
 5 appname=${name}                   #容器名稱
 6 port=80                         #docker暴露端口
 7 
 8 #  mvn打包鏡像
 9 docker run  --rm doc--name my-maven-project -v /root/.m2:/root/.m2 -v "$PWD":/usr/src/mymaven -w /usr/src/mymaven maven:3.5.0-jdk-8-alpine mvn clean install
10 # 獲得docker容器 id和鏡像 id
11 r_c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
12 c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
13 r_img=`docker images | grep "$appname" | awk '{print $3 }'`
14 # 如果容器正在運行,停止它
15 if [ "$r_c"x != ""x ]; then
16     docker stop "$r_c"
17 fi
18 # 刪除容器
19 if [ "$c"x != ""x ]; then
20     docker rm "$c"
21 fi
22 # 刪除鏡像
23 if [ "$r_img"x != ""x ]; then
24     docker rmi "$r_img"
25 fi
26 
27 # 生成鏡像
28 docker build -t $img_output .
29 # 日志目錄
30 mkdir -p $PWD/logs
31 chmod 777 $PWD/logs
32 
33 # 啟動鏡像  8086為工程的端口
34 docker run -d --name $appname -p $port:8086 $img_output

Jenkins自動化配置

  1. 新建任務

                               輸入任務名稱、選擇一個自由風格的軟件項目。確定。

       

          2.設置:找到源碼管理:填入遠程倉庫http。

                               點擊【添加】,添加認證:你的username和password。添加完畢后,返回選擇即可。

        

          3.構建觸發器選擇輪詢SCM:每分鍾檢查代碼是 * * * * * 。

                               圈起來的部分是輪詢機制幫助

        

          4.構建選擇執行shell

         

        填入命令:

        cd /var/lib/jenkins/workspace/yifeng

        ./start.sh

        點擊保存。

        5.查看

           【立即構建】,然后點擊最新的構建,進入。選擇控制台輸出

          

         

           

          這樣算成功了。可以在瀏覽器測試工程的接口了。

          Tips:控制台輸出第二行 是linux上的工作空間。 /var/lib/jenkins/workspace/${name}

最后

          第一次構建可能比較久,日志會不一樣,因為docker需要pull java:8maven:3.5.0-jdk-8-alpine。如果是在日志上是卡到maven的話可以去網上查找docker拉取鏡像加速的教程,多試幾次就可以了。


免責聲明!

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



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