国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

docker+jenkins自動(dòng)化部署springboot項(xiàng)目

這篇具有很好參考價(jià)值的文章主要介紹了docker+jenkins自動(dòng)化部署springboot項(xiàng)目。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前置:環(huán)境配置

  1. 阿里云服務(wù)器1核2GB
  2. java 1.8.0._371
  3. maven apache-maven3.8.8
  4. git 1.8.3.1
    docker和jenkins在一臺(tái)服務(wù)器上,環(huán)境的配置,對(duì)于java和maven可以自己下載對(duì)應(yīng)tar包進(jìn)行配置,記得配置環(huán)境,也可以使用yum進(jìn)行安裝。記得配置/etc/profile后source一下:
    source /etc/profile
    Maven記得修改鏡像!?。?/li>

1. springboot測(cè)試項(xiàng)目

在本地創(chuàng)建一個(gè)簡(jiǎn)單的springboot項(xiàng)目,例如helloworld項(xiàng)目,寫一個(gè)簡(jiǎn)單的controller:

@RestController
public class HelloWorld {
    @RequestMapping("/helloworld")
    public String helloworld(){
        return "hello";
    }
}

2. 安裝jenkins和docker

2.1 安裝docker 和jenkins

下面的鏈接可以一直適用到j(luò)enkins的簡(jiǎn)單配置

安裝docker參考鏈接
在docker安裝完之后,使用docker pull jenkins的鏡像。
下拉jenkins鏡像

補(bǔ)充

運(yùn)行docker:
docker運(yùn)行參考

docker run -di --name=jenkins -p 宿主機(jī)ip(可自定義):8080(容器中jenkins端口默認(rèn)) -v 宿主機(jī)目錄:/var/jenkins_home(容器目錄) jenkins/jenkins:lts # docker啟動(dòng)Jenkins

docker run -itd -p 8080:8080 --name jenkins -u root --privileged=true -v /mydata/jenkins_docker/:/var/jenkins_home jenkins/jenkins:lts

可以參考安裝第一個(gè)鏈接,直到通過jenkins部署,然后通過

clean install -Dmaven.test.skip=true

來(lái)進(jìn)行打包。
拉去遠(yuǎn)程倉(cāng)庫(kù)的代碼可以參考下面鏈接
jenkins添加拉取代碼
可能遇到以下問題:

  1. 因?yàn)楸镜豷pringboot項(xiàng)目引用了自定義jar包,即通過maven遠(yuǎn)程倉(cāng)庫(kù)不能下載的jar包。需要以下配置。。
    1.1 在springboot項(xiàng)目中創(chuàng)建lib文件,并將自定義jar包,復(fù)制到lib目錄下.
    docker+jenkins自動(dòng)化部署springboot項(xiàng)目
    1.2 配置pom.xml
    主要分為兩個(gè)部分,注意scope域不能省略,還有就是路徑要正確
<dependency>
			<groupId>***</groupId>
			<artifactId>*jar包名稱*</artifactId>
			<version>1.0</version>
			<scope>system</scope>
			<systemPath>${project.basedir}/src/main/resources/lib/**.jar</systemPath>
</dependency>
<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<includeSystemScope>true</includeSystemScope>
	</configuration>
</plugin>

參考鏈接:非mavenjar包
2. 因?yàn)閐ocker分為宿主機(jī)目錄和容器目錄,宿主機(jī)目錄極為阿里云服務(wù)器,容器目錄需要切換到docker相應(yīng)容器中進(jìn)行查看,下面提供兩種不同角色的切換方式

docker ps # 通過ps查看容器ID,
sudo docker exec -it 容器id /bin/bash  #切換到指定容器的目錄
# 0 表示 root 用戶
docker exec -u 0 -it id /bin/bash #切換到root用戶

注意這個(gè)不同角色切換很重要!!!,在你成功打jar包后如果在指定容器中不能運(yùn)行,而在root用戶下能運(yùn)行,那么就是權(quán)限問題。
3. 配置jenkins下拉gitee倉(cāng)庫(kù)
因?yàn)閖enkins的默認(rèn)用戶為jenkins,需要切換到j(luò)enkins用戶去執(zhí)行ssh-keygen -t rsa生成密鑰對(duì)來(lái)配置gitee和jenkins
參考鏈接:jenkins下拉gitee倉(cāng)庫(kù)

3 .自動(dòng)化部署

??如果上面兩步,你已經(jīng)成功通過jenkins打包jar包,并在容器目錄中可以查看到相應(yīng)的jar包,可以進(jìn)行下面操作。
??成功打jar包后,下面就是運(yùn)行的問題,如果在容器中直接通過java -jar進(jìn)行運(yùn)行會(huì)存在權(quán)限問題,而且成功運(yùn)行后,因?yàn)槭窃谌萜髦羞\(yùn)行,需要進(jìn)行IP轉(zhuǎn)化,才可以正確訪問。

??這里通過ssh將容器中打包好的jar包傳輸?shù)剿拗鳈C(jī)指定目錄。

3.1 jenkins配置

  1. 系統(tǒng)管理–>插件管理,下載對(duì)應(yīng)的插件
    docker+jenkins自動(dòng)化部署springboot項(xiàng)目
  2. 系統(tǒng)管理–>系統(tǒng)配置,配置SSH server
    docker+jenkins自動(dòng)化部署springboot項(xiàng)目
    docker+jenkins自動(dòng)化部署springboot項(xiàng)目
    配置完成后,自己可以點(diǎn)擊下面的Test Configuration進(jìn)行測(cè)試,進(jìn)行相應(yīng)錯(cuò)誤的修改。
  3. 任務(wù)配置
    docker+jenkins自動(dòng)化部署springboot項(xiàng)目
    docker+jenkins自動(dòng)化部署springboot項(xiàng)目

exec command可以先不寫,可以先部署下看是否可以將容器中的jar包傳輸?shù)剿拗鳈C(jī)指定目錄。
如果可以進(jìn)行下面腳本的編寫

#!/bin/bash
source /etc/profile
#查看之前運(yùn)行的進(jìn)程id
pid=`ps -ef | grep ymxSeller-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
echo "部署前的pid進(jìn)程 :$pid"
# 關(guān)閉已經(jīng)啟動(dòng)的jar進(jìn)程
if [ -n "$pid" ]
  then
    kill -9 $pid
else
    echo "進(jìn)程沒有啟動(dòng)"
fi
sleep 5s
#copy jar 到啟動(dòng)目錄
\cp -rf /home/workplace/maven-demo/ymxSeller-0.0.1-SNAPSHOT.jar /home/workplace/maven-demo/restartdir/ymxSeller-0.0.1-SNAPSHOT.jar

cd /home/workplace/maven-demo/restartdir
nohup /usr/java/jdk1.8.0_371/bin/java -jar /home/workplace/maven-demo/restartdir/ymxSeller-0.0.1-SNAPSHOT.jar  > /home/workplace/maven-demo/restartdir/springboot.log  2>&1 &
echo "腳本執(zhí)行完畢"
sleep 5s
pid=`ps -ef|grep ymxSeller-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
# 檢驗(yàn)進(jìn)程是否啟動(dòng)
if [ -n "$pid" ]
  then
        echo "部署后的pid進(jìn)程 :$pid"
                echo "啟動(dòng)成功"
else
    echo "進(jìn)程沒有啟動(dòng)"
fi
~                  

創(chuàng)建restart.sh并編寫上面的腳本,大致意思就是查詢?cè)搄ar包是否正在運(yùn)行,如果正在運(yùn)行,kill掉該進(jìn)程,然后重新運(yùn)行新的jar包??梢宰约翰榭慈罩?br> 注意里面的jar包名稱和路徑。文件夾必須存在,日志文件可以自己生成。

BUG合集

1、建議將MAVEN_HOME、GIT_HOME、JAVA_HOME更新為docker中jenkins容器中的掛載目錄,其目錄可以在啟動(dòng)jenkins容器時(shí)進(jìn)行指定:
路徑:系統(tǒng)管理–>全局工具配置
docker+jenkins自動(dòng)化部署springboot項(xiàng)目
docker+jenkins自動(dòng)化部署springboot項(xiàng)目
docker+jenkins自動(dòng)化部署springboot項(xiàng)目
2、Build step ‘Invoke top-level Maven targets’ marked build as failure
docker+jenkins自動(dòng)化部署springboot項(xiàng)目
錯(cuò)誤分為三種情況:
2.1 檢查你的Maven指定目錄是否正確,可以使用sudo docker exec -it 容器id /bin/bash 命令進(jìn)入容器環(huán)境進(jìn)行查看。
2.2 服務(wù)器內(nèi)存不足,因?yàn)槲也渴鸬氖莝pringboot項(xiàng)目,會(huì)啟動(dòng)JAVA進(jìn)程,而jenkins本身也會(huì)啟動(dòng)JAVA進(jìn)程。可以使用ps -ef | grep java查看相應(yīng)進(jìn)程。這里可以使用kill -9 的命令殺死當(dāng)前項(xiàng)目java進(jìn)程重新部署,也可以通過配置jenkins的內(nèi)部JVM參數(shù)進(jìn)行調(diào)優(yōu)。
docker+jenkins自動(dòng)化部署springboot項(xiàng)目
2.3 檢查項(xiàng)目pom.xml中是否有當(dāng)前jdk不支持的jar包,比如你使用的是jdk11,卻使用了jdk8自帶的sun.misc.BASE64Encoder;
重啟docker容器,附啟動(dòng)命令:

docker run --name jenkins
-u root
-d -p 8080:8080
-p 50000:50000
–privileged=true
-v /mydata/jenkins_docker/:/var/jenkins_home
-v /usr/local/apache-maven-3.8.8:/usr/local/apache-maven-3.8.8
-v /usr/java/jdk1.8.0_371:/usr/local/jdk1.8.0_371
jenkins/jenkins:lts

#參考鏈接:
jar包自動(dòng)部署文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-437871.html

到了這里,關(guān)于docker+jenkins自動(dòng)化部署springboot項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker + Jenkins 自動(dòng)化部署若依項(xiàng)目

    Docker + Jenkins 自動(dòng)化部署若依項(xiàng)目

    前言 對(duì)著此文章操作之前,確保服務(wù)器上的Java環(huán)境(JDK、MySQL、Redis、Jenkins以及Linux安裝Maven)已經(jīng)裝好,如果沒有裝好,參考我之前的文章。 注意: 如果服務(wù)器上自己裝的又 Nginx ,需要手動(dòng)停了,要不會(huì)導(dǎo)致80端口被占用 1:首先,到若依官網(wǎng)拉去若依分離版項(xiàng)目 2:拉完之后

    2024年04月16日
    瀏覽(39)
  • Jenkins + Docker 一鍵自動(dòng)化部署 SpringBoot 應(yīng)用最精簡(jiǎn)流程

    Jenkins + Docker 一鍵自動(dòng)化部署 SpringBoot 應(yīng)用最精簡(jiǎn)流程

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的 Jenkins + Docker + Spring Boot 一鍵自動(dòng)部署項(xiàng)目。步驟齊全,少走坑路。 環(huán)境:CentOS7 + Git (Gitee) 實(shí)現(xiàn)步驟:在 Docker 安裝 Jenkins,配置 Jenkins 基本信息,利用 Dockerfile 和 Shell 腳本實(shí)現(xiàn)項(xiàng)目自動(dòng)拉取打包并運(yùn)行。 1安裝 Docker 安裝社區(qū)版本 Docker CE 確保 yum 包

    2024年04月26日
    瀏覽(30)
  • Docker+Jenkins+Gitee自動(dòng)化部署maven項(xiàng)目

    Docker+Jenkins+Gitee自動(dòng)化部署maven項(xiàng)目

    各位看官老爺,本文為Jenkins實(shí)戰(zhàn),注重實(shí)際過程,閱讀完會(huì)有以下收獲: 了解如何使用Docker安裝Jenkins 了解如何使用Jenkins部署maven項(xiàng)目 了解如何使用Jenkins+Gitee實(shí)現(xiàn)自動(dòng)化部署 相信,正在讀這篇文章的你,對(duì)Jenkins應(yīng)該有或多或少的了解,就算沒有也應(yīng)該在某個(gè)地方聽說過。??

    2024年02月07日
    瀏覽(30)
  • Jenkins+Docker 實(shí)現(xiàn)一鍵自動(dòng)化部署項(xiàng)目!步驟齊全,少走坑路

    Jenkins+Docker 實(shí)現(xiàn)一鍵自動(dòng)化部署項(xiàng)目!步驟齊全,少走坑路

    大家好,我是互聯(lián)網(wǎng)架構(gòu)師! 本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 一鍵自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。 環(huán)境 :centos7+git(gitee) 簡(jiǎn)述實(shí)現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實(shí)現(xiàn)項(xiàng)目自動(dòng)拉取打包并運(yùn)行。 docker 安裝社區(qū)版本CE

    2024年02月09日
    瀏覽(23)
  • Jenkins + Docker 一鍵自動(dòng)化部署 Spring Boot 項(xiàng)目,步驟齊全,少走坑路!

    Jenkins + Docker 一鍵自動(dòng)化部署 Spring Boot 項(xiàng)目,步驟齊全,少走坑路!

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 一鍵自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。 環(huán)境 :centos7+git(gitee) 簡(jiǎn)述實(shí)現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實(shí)現(xiàn)項(xiàng)目自動(dòng)拉取打包并運(yùn)行。 推薦一個(gè)開源免費(fèi)的 Spring Boot 實(shí)戰(zhàn)項(xiàng)目: https://git

    2024年02月08日
    瀏覽(58)
  • 2023全網(wǎng)最細(xì)最全保姆級(jí)gitlab+Jenkins+maven自動(dòng)化部署springboot項(xiàng)目教程

    2023全網(wǎng)最細(xì)最全保姆級(jí)gitlab+Jenkins+maven自動(dòng)化部署springboot項(xiàng)目教程

    如果沒有Linux基礎(chǔ)請(qǐng)仔細(xì)看好每一個(gè)步驟,避免出錯(cuò),從0到1帶你搭建自動(dòng)化部署環(huán)境,包括服務(wù)器安裝,自動(dòng)化部署所需各類軟件安裝配置,詳細(xì)貼出每一步,不斷步驟,讓你一次搭建部署完成,希望這篇文章能給大家?guī)?lái)一定的幫助,話不多說開始整 2.0 CentOs安裝 2.0.1 下載VM虛擬機(jī) 我直

    2024年02月08日
    瀏覽(62)
  • Jenkins自動(dòng)化部署docker

    Jenkins自動(dòng)化部署docker

    準(zhǔn)備測(cè)試服務(wù)器docker環(huán)境 準(zhǔn)備jdk環(huán)境 將上傳jar包修改為 app.jar 對(duì)外暴露 1000 端口 啟動(dòng)jar 制作鏡像 將上傳的鏡像先測(cè)試,我的jar包叫 sky-server-1.0-SNAPSHOT.jar 先將這個(gè)做成鏡像 創(chuàng)建容器 將之前做的鏡像運(yùn)行 環(huán)境準(zhǔn)備 前提需要Jenkins和Gitea這個(gè)要提前準(zhǔn)備好。 1、配置Jenkins的M

    2024年01月17日
    瀏覽(51)
  • Jenkins自動(dòng)化部署項(xiàng)目

    https://www.jenkins.io/ https://blog.csdn.net/qq_41581588/article/details/128687402 https://blog.csdn.net/zhishidi/article/details/118082509 https://blog.csdn.net/Sojou/article/details/125935262 使用心得

    2024年02月05日
    瀏覽(29)
  • docker+jenkins 實(shí)現(xiàn)自動(dòng)化部署

    docker+jenkins 實(shí)現(xiàn)自動(dòng)化部署

    工欲善其事必先利其器,所以前期的準(zhǔn)備工作必須做好,那么我們要實(shí)現(xiàn)自動(dòng)化部署,必須提前準(zhǔn)備什么呢?哈哈哈,可能有一些小伙伴已經(jīng)猜到了,我們需要一臺(tái)自己的服務(wù)器,這里博主使用的自己夠買一臺(tái)騰訊云的輕量服務(wù)器,折扣完了才一百多塊錢,當(dāng)然小伙伴也可以

    2024年02月06日
    瀏覽(45)
  • php項(xiàng)目自動(dòng)化部署 —— Jenkins

    php項(xiàng)目自動(dòng)化部署 —— Jenkins

    1.地址:Java Downloads | Oracle?因?yàn)槲沂窃诒镜匕惭bjenkins,這里用到的是java11-windows 2.安裝JDK,并配置環(huán)境變量,csdn教程有很多 1.jenkins.msi 地址:Jenkins download and deployment,雙擊安裝(傻瓜式) 2.安裝完成以后,瀏覽器 并打開地址:localhost:8080 3.按照提示的路徑輸入密碼 4.選擇安

    2024年02月10日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包