前提准備
1.擁有一台jenkins服務器 192.168.215.50:8080
2.擁有一台humpback服務器 192.168.215.81:8012
3.有用一台docker服務器 192.168.215.20 (安裝jdk)
4.獲得一個基礎JDK8鏡像用來包裝我們的應用程序
#先下載一個鏡像 docker image pull hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8
# 根據私有倉庫,設定標簽(必須)
# 為鏡像 `hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8` 創建一個新標簽 `192.168.215.81:5000/basjdk8docker:v1`
docker tag hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8 192.168.215.81:5000/basjdk8docker:v1
#推送鏡像到私庫 docker push 192.168.215.81:5000/basjdk8docker:v1
#也可以通過api去查看 curl http://192.168.215.81:5000/v2/_catalog
出現如下問題參照:https://www.cnblogs.com/ff111/p/11889723.html 附的解決方案
流程概要
1.開發人員提交代碼到Git服務器
2.觸發Jenkins將代碼打包
3.Jenkins通過腳本把jar部署到docker服務器,並通過dockerfile將發布的應用構建成鏡像
4.在通過腳本文件將構建好的鏡像push到私服
5.jenkins通過dockerapi請求Humpback集群創建一個容器
6.humpback通過api請求參數從私庫獲取鏡像並運行容器
7.測試人員或開發人員通過瀏覽器訪問應用
配置手順
1.創建一個新的jenkins任務
item hello-world test -D maven.test.skip=true -U
你自己的代碼gitlab地址
${item}/pom.xml
clean package ${test}
BUILD_ID=DONTKILLME /var/dockerworks/docker.sh
保存jenkins構建配置,並執行,記錄紅框地址
[INFO] Building jar: /var/lib/jenkins/workspace/jenkins-gitlab-maven-springboot-humpback/hello-world/target/hello-world-0.0.1-SNAPSHOT.jar
2./var/dockerworks目錄下創建並編寫Dockerfile文件
vi Dockerfile
#從私服下載鏡像
FROM 192.168.215.81:5000/basjdk8docker:v1
# 指定當前操作目錄
WORKDIR /var/dockerworks
# 把當前目錄jar復制到容器根目錄
ADD helloworld.jar helloworld.jar
#指定對外端口號
EXPOSE 8090
#啟動java程序
#--spring.profiles.active=dev 多環境下指定環境 。 -c為清除以前啟動的數據
ENTRYPOINT ["java","-jar","helloworld.jar","--spring.profiles.active=dev","-c"]
3.創建配置docker.sh腳本
vi docker.sh