Jenkins發布docker應用與發布java應用配置基本一致,需要配置Dockerfile及構建的步驟,步驟如下:
1、jenkins主機構建應用為jar包
2、jenkins主機把生產的jar包構建為docekr鏡像
3、jenkins主機把構建好的鏡像推送至鏡像倉庫
4、目標主機去鏡像倉庫拉取鏡像
5、目標主機以拉取的最新鏡像啟動新的服務
注意:需要在jenkins以及目標主機部署docker服務,關於docker的部署網上問的一堆,請自行百度。
1、新建項目
跟據之前創建任務一樣,創建maven項目
2、項目配置
a)源碼管理:指定代碼倉庫位置,以及分支
b)build
c)Post Steps
指定構建docker鏡像的命令
說明:這里是說把打包好的jar包復制到我們創建好的構建eureka鏡像的目錄
build.sh 是一個腳本,用來構建鏡像,並把鏡像推送至指定鏡像倉庫,腳本內容如下:
[tchua@centos01 one-eureka]$ vim build.sh
#!/bin/bash docker_hub="registry-vpc.cn-hangzhou.aliyuncs.com/xxx/uat-images" ## 鏡像倉庫地址 TAG="eureka" #rm docker rmi ${docker_hub}:$TAG ## 刪除上一次構建鏡像 #login docker login -u ${USER} -p ${PASSWD} ${docker_hub} ## 登陸鏡像倉庫,${USER} ${PASSWD}修改為自己具體的用戶名密碼 #build docker build -t ${docker_hub}:$TAG . ## 構建新鏡像,. 是指DOckerfile在當前目錄下 #push docker push ${docker_hub}:$TAG ## 推送鏡像至鏡像倉庫
鏡像構建需要一個Dockerfile,Dockerfile文件內容:
FROM registry-vpc.cn-hangzhou.aliyuncs.com/vanje_one/software:java1.8 MAINTAINER vanje@vanje.com.cn ADD eureka-1.0.0.jar /apps/ EXPOSE 8076 ENTRYPOINT ["java","-jar","/apps/eureka-1.0.0.jar"]
d)構建后操作
說明:這里是遠程登陸服務器執行服務啟動腳本。
腳本內容如下:
#!/bin/bash docker_hub="registry-vpc.cn-hangzhou.aliyuncs.com/vanje_one/uat-images" ## 鏡像倉庫地址 TAG="eureka" #rm docker rm -f eureka ## 刪除現有容器 docker rmi ${docker_hub}:${TAG} ## 刪除現有容器鏡像 #login docker login -u ${USER} -p ${PASSWD} ${docker_hub} ## 登陸鏡像倉庫,${USER} ${PASSWD}修改為自己具體的用戶名密碼 docker pull ${docker_hub}:${TAG} ## 拉去鏡像 docker run --name eureka -p 8076:8076 -d ${docker_hub}:${TAG} ## 啟動指定鏡像服務
3、發布
以上保存點擊發布后,查看控制台日志可以看到對應的構建信息: