Docker?+?jenkins項(xiàng)目打包鏡像部署詳細(xì)步驟(親測(cè)有效)
這一期目前是基于已經(jīng)搭建好Docker + jenkins 的基礎(chǔ)上進(jìn)行的,當(dāng)然,后面會(huì)將Docker和Jenkins的部署也會(huì)寫,好了,廢話不多說(shuō),接下來(lái)我們就已經(jīng)搭建好的環(huán)境進(jìn)行項(xiàng)目的部署:
1.jenkins 安裝:


前期的JDK安裝:以下的安裝都是基于jenkins 就可以,當(dāng)然自己在外部的JDK在啟動(dòng)Jenkins時(shí)候就需要將其掛載在Jenkins上,不然在Jenkins中會(huì)找不到執(zhí)行環(huán)境,比如:
后續(xù)會(huì)將這個(gè)的啟動(dòng)和部署出一個(gè)文章的,現(xiàn)在很多文章不夠具體和細(xì)節(jié)
docker run -d \ -p 8888:8080 \ -p 50000:50000 \ --privileged=true \ -v /var/jenkins_home:/var/jenkins_home \ -v /etc/localtime:/etc/localtime \ -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \ --restart=always \ --name=jenkins \ -u root \ -v /data/maven/maven3.9:/data/maven \ 這里就是掛載的maven -v /usr/local/tools/jdk11:/data/jdk11 \ 這里是掛在的jdk -v /var/run/docker.sock:/var/run/docker.sock \ **這里非常重要,必須加**,不然進(jìn)去執(zhí)行shell會(huì)找不到Docker命令 -v $(which docker):/usr/bin/docker \ **這里非常重要,必須加**,不然進(jìn)去執(zhí)行shell會(huì)找不到Docker命令 jenkins/jenkins

maven安裝:

全局環(huán)境變量設(shè)置:

上面的前期設(shè)置:
2.項(xiàng)目搭建
2.1.接下來(lái)就是新建任務(wù)
項(xiàng)目具體設(shè)置

2.2 git 倉(cāng)庫(kù)地址配置


2.3 maven配置

2.4 shell 腳本設(shè)置

2.5 項(xiàng)目中Dockerfile 設(shè)置

Jenkins shell:
#!/bin/bash cd /var/jenkins_home/workspace/springboot-jenkins-test docker stop springboottest || true docker rm springboottest || true docker rmi springboottest || true docker build -t springboottest . docker run -d -p 8092:8092 --name springboottest springboottest:latest
項(xiàng)目中的Dockerfile:
# 指定是基于哪個(gè)基礎(chǔ)鏡像 FROM java:8 # 作者信息 MAINTAINER Edward_zhang # 掛載點(diǎn)聲明 VOLUME /tmp1 # 將本地的一個(gè)文件或目錄,拷貝到容器的文件或目錄里 ADD /target/springboot-jenkins-test-1.0.0.jar springboot.jar #shell腳本 RUN bash -c 'touch /springboot.jar' # 將容器的8081端口暴露,給外部訪問(wèn)。 EXPOSE 8092 # 當(dāng)容器運(yùn)行起來(lái)時(shí)執(zhí)行使用運(yùn)行jar的指令 #ENTRYPOINT ["java", "-jar", "springboot.jar"] ENTRYPOINT ["java", "-jar", "/springboot.jar"]
最終要的來(lái)了:點(diǎn)擊保存 ??

構(gòu)建:


2.6 結(jié)果展示

看到上圖中的日志顯示,就可以知道是我們?cè)贒ockerfile 中設(shè)置的相關(guān)
當(dāng)然在其中也遇到過(guò)很多坑:
3. 遇到的坑總結(jié)
3.1 jdk 找不到
這就是上面所說(shuō)的Jenkins部署的時(shí)候沒(méi)有將jdk掛載,

3.2 docker command not found
這里出現(xiàn)的問(wèn)題就很重要了,問(wèn)題是你在部署啟動(dòng)Jenkins的時(shí)候,沒(méi)有將docker 容器掛載,后面運(yùn)行上面的shell腳本的時(shí)候就會(huì)出現(xiàn)找不到的問(wèn)題

3.3 打包失敗 Build failed
這里的問(wèn)題就是maven出現(xiàn)問(wèn)題,會(huì)出現(xiàn)

3.4 jdk 設(shè)置問(wèn)題


總結(jié)
到此這篇關(guān)于Docker + jenkins項(xiàng)目打包鏡像部署的文章就介紹到這了,更多相關(guān)Docker+jenkins打包鏡像部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Jenkins+Docker實(shí)現(xiàn)自動(dòng)化部署
- Docker安裝Jenkins并部署Maven項(xiàng)目詳細(xì)教程
- Jenkins整合Docker自動(dòng)化部署的實(shí)現(xiàn)
- Jenkins+Docker?一鍵自動(dòng)化部署?SpringBoot?項(xiàng)目的詳細(xì)步驟
- 基于Docker與Jenkins實(shí)現(xiàn)自動(dòng)化部署的原理解析
- Docker搭建Jenkins并自動(dòng)化打包部署項(xiàng)目的步驟
- Docker+Jenkins實(shí)現(xiàn)一鍵自動(dòng)化部署項(xiàng)目的圖文教學(xué)
相關(guān)文章
Docker基于macvlan實(shí)現(xiàn)跨主機(jī)容器通信
這篇文章主要介紹了Docker基于macvlan實(shí)現(xiàn)跨主機(jī)容器通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
使用Docker安裝和配置 MySQL 數(shù)據(jù)庫(kù)的過(guò)程詳解
本文將介紹如何使用Docker來(lái)安裝和配置MySQL數(shù)據(jù)庫(kù),以便在開(kāi)發(fā)和測(cè)試環(huán)境中快速搭建MySQL實(shí)例,本文也是介紹兩種方式進(jìn)行分別是“使用鏡像安裝”、“使用Docker Compose安裝”,感興趣的朋友一起看看吧2023-12-12
如何使用docker極簡(jiǎn)打包java.jar鏡像并啟動(dòng)
這篇文章主要介紹了如何使用docker極簡(jiǎn)打包java.jar鏡像并啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
在Centos7 中更改Docker默認(rèn)鏡像和容器的位置
這篇文章主要介紹了在Centos7 下更改Docker默認(rèn)鏡像和容器的位置,需要的朋友可以參考下2017-05-05
Docker容器Container鏡像Image如何存儲(chǔ)詳解
本文主要介紹Docker容器(Container)和鏡像(Image)是如何進(jìn)行數(shù)據(jù)存儲(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Docker版的MySQL5.7升級(jí)到MySQL8.0.13,數(shù)據(jù)遷移
這篇文章主要介紹了Docker版的MySQL5.7升級(jí)到MySQL8.0.13,數(shù)據(jù)遷移,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Docker 拉取鏡像及標(biāo)簽操作 pull | tag
這篇文章主要介紹了Docker 拉取鏡像及標(biāo)簽操作 pull | tag,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
關(guān)于docker部署服務(wù)時(shí)ip無(wú)法訪問(wèn)服務(wù)正常的問(wèn)題
小編在使用docker部署應(yīng)用的時(shí)候,無(wú)法使用IP地址訪問(wèn),防火墻已經(jīng)關(guān)閉,可以ping通,應(yīng)用已經(jīng)配置0.0.0.0,怎么回事?下面小編給大家介紹下docker部署服務(wù),ip無(wú)法訪問(wèn),服務(wù)正常的解決方法,感興趣的朋友一起看看吧2022-09-09
skywalking agent 關(guān)聯(lián)docker鏡像的多種方法
Apache SkyWalking 提供了多種方式來(lái)部署和使用 SkyWalking Agent,包括在 Docker 容器中運(yùn)行的應(yīng)用,本文給大家分享幾種方式將 SkyWalking Agent 集成到你的 Docker 應(yīng)用中,感興趣的朋友一起看看吧2025-04-04
docker容器非root用戶提權(quán)的問(wèn)題解決
本文主要介紹了docker容器非root用戶提權(quán)的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

