Docker?+?jenkins項(xiàng)目打包鏡像部署詳細(xì)步驟(親測有效)
這一期目前是基于已經(jīng)搭建好Docker + jenkins 的基礎(chǔ)上進(jìn)行的,當(dāng)然,后面會(huì)將Docker和Jenkins的部署也會(huì)寫,好了,廢話不多說,接下來我們就已經(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.接下來就是新建任務(wù)
項(xiàng)目具體設(shè)置
2.2 git 倉庫地址配置
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端口暴露,給外部訪問。 EXPOSE 8092 # 當(dāng)容器運(yùn)行起來時(shí)執(zhí)行使用運(yùn)行jar的指令 #ENTRYPOINT ["java", "-jar", "springboot.jar"] ENTRYPOINT ["java", "-jar", "/springboot.jar"]
最終要的來了:點(diǎn)擊保存 ??
構(gòu)建:
2.6 結(jié)果展示
看到上圖中的日志顯示,就可以知道是我們在Dockerfile 中設(shè)置的相關(guān)
當(dāng)然在其中也遇到過很多坑:
3. 遇到的坑總結(jié)
3.1 jdk 找不到
這就是上面所說的Jenkins部署的時(shí)候沒有將jdk掛載,
3.2 docker command not found
這里出現(xiàn)的問題就很重要了,問題是你在部署啟動(dòng)Jenkins的時(shí)候,沒有將docker 容器掛載,后面運(yùn)行上面的shell腳本的時(shí)候就會(huì)出現(xiàn)找不到的問題
3.3 打包失敗 Build failed
這里的問題就是maven出現(xiàn)問題,會(huì)出現(xiàn)
3.4 jdk 設(shè)置問題
總結(jié)
到此這篇關(guān)于Docker + jenkins項(xiàng)目打包鏡像部署的文章就介紹到這了,更多相關(guān)Docker+jenkins打包鏡像部署內(nèi)容請搜索腳本之家以前的文章或繼續(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?build?-t?和?docker?build?-f?區(qū)別解析
docker build 是用于構(gòu)建Docker鏡像的命令,它允許你基于一個(gè)Dockerfile來創(chuàng)建一個(gè)鏡像,在 docker build 命令中,有兩個(gè)常用的選項(xiàng) -t 和 -f,它們有不同的作用,這篇文章主要介紹了docker?build?-t?和?docker?build?-f?區(qū)別,需要的朋友可以參考下2023-08-08docker搭建Mycat實(shí)現(xiàn)讀寫分離的項(xiàng)目實(shí)踐
本文主要介紹了docker搭建Mycat實(shí)現(xiàn)讀寫分離的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06docker-compose啟動(dòng)springboot項(xiàng)目連接mysql問題
這篇文章主要介紹了docker-compose啟動(dòng)springboot項(xiàng)目連接mysql問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03