Jenkins+docker發(fā)布Springbot服務(wù)的實(shí)現(xiàn)
一.開(kāi)發(fā)Springbot應(yīng)用
新建多個(gè)環(huán)境的配置文件
bootstrap.yaml
通過(guò)變量獲取不同環(huán)境active
bootstrap-dev.yml
bootstrap-pre.yaml
預(yù)發(fā)布及生產(chǎn)環(huán)境配置文件走nacos
二.配置docker
新增Dockerfile文件
Dockerfile內(nèi)容
# Docker image for springboot file run # VERSION 0.0.1 # Author: eangulee # 基礎(chǔ)鏡像使用java FROM openjdk:8 # 作者 MAINTAINER qql <xxx@qq.com> # VOLUME 指定了臨時(shí)文件目錄為/tmp。 # 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp VOLUME /tmp # 設(shè)置時(shí)區(qū) ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 將jar包添加到容器中并更名為app.jar ARG JAR_FILE ADD target/cdc-0.0.1-SNAPSHOT.jar /app.jar #替換成你項(xiàng)目打包后的文件名稱 #配置項(xiàng)目端口 EXPOSE 8020 # 運(yùn)行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=${env}"] #通過(guò)變量傳遞不同的環(huán)境
在服務(wù)器項(xiàng)目下新增docker-composer.yaml文件 ,不要放在代碼版本庫(kù)
version: '3' services: project-demo: container_name: cdcd-demo #自定義容器名稱 image: qql/cdcd:0.0.1 #鏡像名稱 restart: always environment: env: dev #環(huán)境,不同環(huán)境使用不同環(huán)境名稱 volumes: # 同步時(shí)間 - /etc/localtime:/etc/localtime:ro # 如果項(xiàng)目有些日志或者寫文件,需要同步到宿主機(jī)器,也需要定義相應(yīng)的卷 # - ./data:/etc/project-demo/data # - ./log:/etc/project-demo/log ports: - 8080:8020
三.配置Jenkins
新增部署shell腳本
#!/bin/bash echo "當(dāng)前位置" pwd mvn clean package -Dmaven.test.skip=true #切換到項(xiàng)目目錄 cd cdc pwd #獲取最新版本tag LatestTag=$(git describe --tags `git rev-list --tags --max-count=1`) echo -e "最新版本tag......" echo -e "$LatestTag" echo -e "鏡像地址" #獲取本機(jī)IP local_ip=`ifconfig eth0 | grep 'inet' | awk '{print $2}' | sed -e "s/addr\://"` echo ${local_ip} #制作docker鏡像 docker build -f Dockerfile -t qql/cdc:1.0 . echo "制作成功" cd ../docker pwd #根據(jù)docker-composer.yaml文件新建獲取重新構(gòu)建docker容器 docker-compose -f docker-composer.yaml -p cdc up -d step=1 #間隔的秒數(shù),不能大于60 content="" for (( i = 0; i < 60; i=(i+step) )); do status_code=$(curl -I -m 10 -o /dev/null -s -w %{http_code} 127.0.0.1:8080/index/index) #訪問(wèn)服務(wù)一個(gè)接口驗(yàn)證容器是否啟動(dòng) echo $status_code if [ $status_code != 200 ]; then sleep $step echo "服務(wù)還沒(méi)有啟動(dòng),耗時(shí)"$i"秒" else echo "服務(wù)已經(jīng)啟動(dòng),耗時(shí)"$i"秒" break fi if [ $i == 59 ]; then echo "啟動(dòng)失敗" exit -1 fi done { docker rmi `docker images | grep none | awk '{print $3}'` && / } || { echo 'delete null images error(不需要處理)' }
保存,則就可以執(zhí)行部署
到此這篇關(guān)于Jenkins+docker發(fā)布Springbot服務(wù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Jenkins+docker發(fā)布Springbot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker通過(guò)Dockerfile構(gòu)建mysql鏡像的方法
這篇文章主要介紹了docker通過(guò)Dockerfile構(gòu)建mysql鏡像,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05詳解mac下通過(guò)docker搭建LEMP環(huán)境
本篇文章主要介紹了詳解mac下通過(guò)docker搭建LEMP環(huán)境,詳細(xì)介紹了nginx,mysql,php的安裝配置,有興趣的可以來(lái)了解一下。2017-03-03解決Docker報(bào)錯(cuò):“docker build“ requires exactly&nb
這篇文章主要介紹了解決Docker報(bào)錯(cuò):“docker build“ requires exactly 1 argument.具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12win7下docker安裝與報(bào)錯(cuò)問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了win7下docker安裝與報(bào)錯(cuò)問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06使用TLS加密通訊遠(yuǎn)程連接Docker的示例詳解
這篇文章主要介紹了使用TLS加密通訊遠(yuǎn)程連接Docker的示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Docker安裝部署neo4j的實(shí)戰(zhàn)過(guò)程
Docker是一種容器化技術(shù),可以在Linux系統(tǒng)上部署應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于Docker安裝部署neo4j的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05docker從安裝入門到應(yīng)用部署及私有倉(cāng)庫(kù)搭建基礎(chǔ)命令
這篇文章主要為大家介紹了docker從安裝入門到應(yīng)用部署及私有倉(cāng)庫(kù)搭建基礎(chǔ)命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04使用OpenSSL生成Kubernetes證書(shū)的介紹
今天小編就為大家分享一篇關(guān)于使用OpenSSL生成Kubernetes證書(shū)的介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01在docker中執(zhí)行l(wèi)inux shell命令的操作
這篇文章主要介紹了在docker中執(zhí)行l(wèi)inux shell命令的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03docker容器自動(dòng)退出重啟報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了docker容器自動(dòng)退出重啟報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07