使用Docker安裝部署Jenkins教程分享
本文主要記錄如何通過docker安裝jenkins,并且通過jenkins部署項目
前置準(zhǔn)備:jenkins所在宿主服務(wù)器首先安裝好jdk、maven
一、配置JDK環(huán)境
注意:選擇適合自己的JDK,并且注意安裝JDK的系統(tǒng)
地址:https://www.oracle.com/java/technologies/downloads/#java8

1、卸載linux系統(tǒng)自帶的JDK
(建議直接用超級用戶,不然卸載的時候可能會報權(quán)限不夠的error,之后的操作也需要用root權(quán)限)
1.1、切換用戶:su root
su root
1.2、查看自帶JDK命令:rpm -qa | grep jdk
rpm -qa | grep jdk
1.3、卸載自帶JDK命令:rpm -e --nodeps 要卸載的JDK
rpm -e --nodeps 要卸載的JDK
2、在usr/local目錄下創(chuàng)建java目錄
把我們下載好的JDK壓縮包上傳到 創(chuàng)建好的 java目錄下(我放在該目錄下了,也可以放在其他目錄下)
創(chuàng)建安裝目錄:mkdir java
cd /usr/local mkdir java cd java
3、把壓縮包解壓到當(dāng)前目錄(我們創(chuàng)建的java目錄下),解壓命令:tar -zxvf 所要解壓的文件名
tar -zxvf 所要解壓的文件名
4、編輯profile文件:vim /etc/profile
把光標(biāo)移到最后一行,鍵盤按 i,進入編輯模式,然后插入以下內(nèi)容:(注意自己所建java的路徑、jdk的名稱)
JAVA_HOME=/usr/local/java/jdk1.8.0_381 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH
然后按ESC退出編輯模式,‘shift + :’,輸入wq,回車,完成保存并退出
5、讓編輯的文件生效執(zhí)行:source /etc/profile
6、最后驗證JDK安裝是否成功:java -version
[root@aliyun ~]# cd /usr/local/java [root@aliyun java]# ls jdk-8u381-linux-x64.tar.gz [root@aliyun java]# tar -zxvf jdk-8u381-linux-x64.tar.gz [root@aliyun java]# vim /etc/profile [root@aliyun java]# source /etc/profile [root@aliyun java]# java -version java version "1.8.0_381" Java(TM) SE Runtime Environment (build 1.8.0_381-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)
出現(xiàn)上述顯示,則完畢!
二、配置Maven環(huán)境
1、準(zhǔn)備Maven安裝包
打開Maven官網(wǎng):Maven – Download Apache Maven
我選擇是3.9.3版本(選擇適合自己的版本),找到后綴名是.tar.gz的文件下載,如圖所示:

1.1、創(chuàng)建安裝目錄:mkdir maven
cd /usr/local mkdir maven cd maven
1.2、把壓縮包解壓到當(dāng)前目錄(我們創(chuàng)建的maven目錄下),解壓命令:tar -zxvf 所要解壓的文件名
tar -zxvf 所要解壓的文件名
1.3、解壓完畢以后,新建一個repository倉庫,用于存放Maven下載下來的jar包
mkdir repository
2、配置鏡像
編輯settings.xml文件
vi apache-maven-3.9.3/conf/settings.xml
按i鍵進入編輯模式
1.設(shè)置Maven倉庫,就是我剛才新建的文件夾
<localRepository>/maven/repository</localRepository>

2.配置為阿里云鏡像地址
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>

按Esc鍵退出編輯模式,輸入:wq保存并退出vim編輯器
3、配置環(huán)境變量
編輯profile文件
vim /etc/profile
按i鍵進入編輯模式
添加如下環(huán)境變量
export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.3 export PATH=$PATH:$MAVEN_HOME/bin

按Esc鍵退出編輯模式,輸入:wq保存并退出vim編輯器
運行以下命令使profile文件生效
source /etc/profile
檢查環(huán)境配置是否成功
mvn -v

大功告成!
三、Jenkins環(huán)境搭建–Docker
#查看你需要安裝的版本 docker search jenkins #安裝鏡像包 docker pull jenkins/jenkins #默認(rèn)安裝最新版本 #安裝指定版本 指令入下 docker pull jenkins/jenkins:xx(版本號) #查看是否安裝成功(查看鏡像包) docker images
1、使用以下命令下載Jenkins鏡像(安裝最新版)
docker pull jenkins/jenkins:latest
2、啟動并創(chuàng)建Jenkins容器
#啟動命令: docker run -u root -d \ -p 10240:8080 -p 10241:50000 \ -v /var/jenkins_home/workspace/:/var/jenkins_home/workspace/ \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /usr/local/java/jdk1.8.0_381:/usr/local/java \ -v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven \ -e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \ --name myjenkins jenkins/jenkins #解釋: -d :后臺運行 -p:10240:8080 鏡像8080 :端口映射到宿主機 10240端口 -p:10241:50000 鏡像50000 :端口映射到宿主機 10241端口 -v:/var/jenkins_home/workspace/:/var/jenkins_home/workspace/ /var/jenkins_home/workspace/ 宿主機的Jenkins目錄掛載路徑 jenkins /var/jenkins_home/workspace/ 鏡像服務(wù)器中jenkins的工作目錄 -v /usr/bin/docker:/usr/bin/docker : 掛載docker -v /usr/local/java/jdk1.8.0_381:/usr/local/java : 掛載映射宿主機jdk -v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven : 掛載映射宿主機maven -e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \ :同步時間 --name myjenkins(自定義容器名稱) jenkins/jenkins(需要映射容器名稱)
如果執(zhí)行命令發(fā)現(xiàn)jenkins沒有啟動成功,很大概率是因為掛載的目錄沒有權(quán)限,需要授權(quán)
chown -R 1000:1000 /root/apply/jenkins_mount chown -R 1000:1000 /root/apply/apache-maven-3.8.4 chown -R 1000:1000 /usr/local/jenkins chown -R 1000:1000 /etc/localtime
jenkins容器啟動以后,咱們就需要到阿里云或者是騰訊云中,將端口為10240打開
瀏覽器訪問:你的服務(wù)器ip:10240。不出意外,你就能訪問到j(luò)enkins了。

3、進入容器,查看登錄初始化密碼
執(zhí)行命令:
docker exec -it myjenkins /bin/bash cat /var/jenkins_home/secrets/initialAdminPassword

選擇安裝推薦插件

2.3版本安裝插件很多失敗,我換成了2.415版本

安裝完成后創(chuàng)建管理員用戶

4、配置Jenkins
4.1、安裝三個插件: Publish Over SSH和Maven Integration和GitLab ,點擊: 系統(tǒng)管理->插件管理 -> 可選插件中進行輸入安裝。
如下圖所示:


4.2、安裝好上一步中的幾個插件之后,接下來需要在jenkins中配置一下Git和SSH: 點擊:系統(tǒng)管理 -> 系統(tǒng)配置 -> 找到Git和SSH




4.3、配置JDK和Maven: 點擊:系統(tǒng)管理 -> 全局工具配置 -> 找到JDK和Maven


四、使用Jenkins構(gòu)建項目
Jenkins中構(gòu)建項目的類型有很多,常用的有以下三種:
- 自由風(fēng)格軟件項目(FreeStyle Project)(推薦)
- Maven項目(Maven Project)
- 流水線項目(Pipeline Project)(推薦)
實際上每種類型的構(gòu)建都可以完成一樣的構(gòu)建過程與結(jié)果,只是在操作方式、靈活度等方面有所區(qū)別,在實際開發(fā)中可以根據(jù)自己的需求和習(xí)慣來選擇。從靈活度上來說,流水線類型是最高的。


1、Pipeline流水線項目構(gòu)建(推薦)
簡單來說,Pipeline就是一套運行在 Jenkins 上的工作流框架,將原來獨立運行于單個或者多個節(jié)點的任務(wù)連接起來,實現(xiàn)單個任務(wù)難以完成的復(fù)雜流程編排和可視化的工作。
Pipeline支持兩種語法:聲明式(Declarative)和腳本式(Scripted Pipeline)語法。
注意:需要安裝Pipeline插件

1.1、聲明式項目構(gòu)建

- stages:代表整個流水線的所有執(zhí)行階段,通常stages只有1個,里面包含多個stage。
- stage:代表流水線中的某個階段,可能出現(xiàn)n個。一般分為拉取代碼、編譯構(gòu)建、部署等階段。
- steps:代表一個階段內(nèi)需要執(zhí)行的邏輯。steps里面是shell腳本,git拉取代碼、ssh遠程發(fā)布等任意內(nèi)容。
這里,我們編寫一個簡單聲明式的Pipeline,來感受一下整個構(gòu)建過程:
pipeline {
agent any
stages {
stage('拉取代碼') {
steps {
echo '拉取代碼'
}
}
stage('編譯構(gòu)建') {
steps {
echo '編譯構(gòu)建'
}
}
stage('項目部署') {
steps {
echo '項目部署'
}
}
}
}
開始構(gòu)建,并輸出構(gòu)建結(jié)果

1.2、腳本式項目構(gòu)建

- Node :節(jié)點,一個 Node 就是一個 Jenkins 節(jié)點,Master 或者 Agent,是執(zhí)行 Step 的具體運行環(huán)境。
- Stage :階段,一個 Pipeline 可以劃分為若干個 Stage,每個 Stage 代表一組操作,比如:Build、Test、Deploy,Stage 是一個邏輯分組的概念。
- Step :步驟,Step 是最基本的操作單元,可以是打印一句話,也可以是構(gòu)建一個 Docker 鏡像,由各類 Jenkins 插件提供,比如命令:sh ‘make’,就相當(dāng)于我們平時 shell 終端中執(zhí)行 make 命令一樣。
編寫一個簡單的腳本式Pipeline:
node {
def mvnHome
stage('Preparation') {
echo '拉取代碼'
}
stage('Build') {
echo '編譯構(gòu)建'
}
stage('Results') {
echo '項目部署'
}
}
開始構(gòu)建,并輸出構(gòu)建結(jié)果

1.3、使用腳本構(gòu)建項目
如果不會寫流水線腳本,選擇流水線語法可以自動生成Pipeline語法
點擊【流水線語法】進入新頁面

選擇想要生成的流水線腳本,填寫對應(yīng)配置然后生成

Git拉取代碼流水線語句:

連接服務(wù)器執(zhí)行語句:

最終的流水線腳本:
pipeline {
agent any
tools {
maven "maven3.9.3"
jdk "jdk1.8"
}
stages {
stage('拉取代碼') {
steps {
git credentialsId: '4ef30b0b-a335-4a6e-bfbe-151d59676f44', url: 'http://42.236.74.152:8050/fumingxing/cmcc-tenant.git'
}
}
stage('編譯打包') {
steps {
sh '''echo "開始構(gòu)建"
mvn clean install -Dmaven.test.skip=true
echo "構(gòu)建結(jié)束"'''
}
}
stage("服務(wù)傳輸、啟動"){
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'mySSH', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''#第一步是進入到服務(wù)器中生成好的jar包的目錄下
cd /var/jenkins_home/workspace/mytest/ruoyi-admin/target
#第二步是根據(jù)jar包的名字獲取運行的pid,并且將該進程殺死
ps -ef | grep ruoyi-admin.jar | grep -v grep | awk \'{printf $2}\' | xargs kill -9
#最后一步就是將這個jar后臺啟動了,并且將日志輸出到out.log中。
nohup java -Xms128m -Xmx128m -Xss1024k -XX:MaxNewSize=64M -XX:MaxPermSize=64M -jar ruoyi-admin.jar >out.log 2>&1 &''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: 'ruoyi-admin/target', sourceFiles: 'ruoyi-admin/target/ruoyi-admin.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}


總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
內(nèi)網(wǎng)環(huán)境下registry搭建步驟詳解
這篇文章主要為大家介紹了內(nèi)網(wǎng)環(huán)境下的registry搭建步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
Docker Attach 命令及操作場景應(yīng)用(容器交互機制)
Docker attach用于連接運行容器的IO流,實現(xiàn)調(diào)試與監(jiān)控,核心參數(shù)包括--detach-keys自定義退出鍵、--no-stdin避免誤操作,生產(chǎn)環(huán)境建議配合安全配置使用,開發(fā)環(huán)境可靈活操作,接下來通過本文給大家介紹Docker Attach 命令的操作應(yīng)用,感興趣的朋友一起看看吧2025-08-08
Ollma本地部署Qwen2.5 14B的詳細過程(不使用docker)
本文介紹了如何在不使用Docker的情況下部署Ollama模型和Open-webui實現(xiàn)可視化界面,Ollama模型通過命令行操作,包括啟動、創(chuàng)建、運行等,Open-webui則需要安裝Anaconda環(huán)境,安裝并啟動服務(wù)后,通過瀏覽器訪問即可使用,感興趣的朋友跟隨小編一起看看吧2024-11-11

