docker?安裝jenkins,就這一步都惡心死了
//拉取鏡像,踩了很多坑,用其它版本的鏡像插件一直安裝失敗,最后用的是lts版本(基礎版)
用其它版本要么是連不上插件的下載地址,要么是插件下載不成功
?docker pull jenkins/jenkins:lts
?部署
docker run --user root -d -p 10240:8080 -p 10241:50000 -v /usr/local/jenkins:/var/jenkins_home -v /usr/local/maven/apache-maven-3.8.8:/usr/local/maven?
-v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /data/app/logs:/data/app/logs --name myjenkins 056e9a39e8be
?
細聽我慢慢道來,(-v那些千萬不要不弄,因為后面都會用上)
解釋一下:-d 后臺運行容器-p 端口映射--user root? 指定運行容器角色? 否則可能會導致沒有權(quán)限從而構(gòu)建失敗-v是將你本地的文件夾掛載到容器指定的文件夾
其中-v /usr/local/jenkins:/var/jenkins_home是指定docker容器下的Jenkins的/var/jenkins_home路徑在宿主機的/usr/local/jenkins
/usr/local/maven/apache-maven-3.8.8:/usr/local/maven?是宿主機的?maven地址:/usr/local/maven/apache-maven-3.8.8映射到容器里面/usr/local/maven
/usr/bin/docker:/usr/bin/docker和/var/run/docker.sock:/var/run/docker.sock是為了在Jenkins容器里面使用docker命令,不然你后面部署的時候docker命令都用不了
其中要對宿主機的/usr/local/jenkins創(chuàng)建和授權(quán)
?mkdir -p /usr/local/jenkins
chmod 777 /usr/local/jenkins
這里說一下linux安裝maven
1:先是在maven官方下載地址Maven – Download Apache Maven選擇了3.8.8的下載
?然后直接拖進機器里面,因為我的宿主機maven地址是/usr/local/maven
所以你也相對應創(chuàng)建文件夾就可以了。
然后解壓
tar zxvf?apache-maven-3.8.8-bin.tar.gz
然后在/conf/settings.xml修改鏡像地址和本地倉庫路徑
先創(chuàng)建ck文件夾?
<localRepository>/usr/local/maven/apache-maven-3.8.8/ck</localRepository>
<mirror>
? <id>alimaven</id>
? <name>aliyun maven</name>
? ?<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
? <mirrorOf>central</mirrorOf>
</mirror>
?
?
?然后最重要的是要配置maven環(huán)境變量,編輯:vi /etc/profile 文件,翻到最后一行加上 export MAVEN_HOME=/usr/local/apache-maven-3.6.3 export PATH=?P A T H : PATH:?PATH:MAVEN_HOME/bin 保存退出,如下圖:
?其中MAVEN_HOME一定要是你自己的maven路徑?。。。。。?/p>
重新加載一下,source /etc/profile 使新增配置生效
輸入命令:mvn -v
?看到版本號就說明安裝好了
回到Jenkins
訪問地址是:你的服務器IP地址:端口號 ,這個端口號是剛剛docker run 命令映射的端口號10240到這個頁面稍微等等.....................
?
?//查看jenkins首次登錄的密碼
cat /usr/local/jenkins/secrets/initialAdminPassword(這是我的路徑)
選擇安裝推薦插件
?
?jdk可有可無
?配置好全局之后,新建一個項目(也可以先去下載一個Maven Integration plugin的插件然后新建一個然后新建一個maven項目)但是構(gòu)建一個自由風格的項目也是可以的
?
?
?
在使用Git作未源碼管理時,必須保證源碼中項目根目錄文件下有編寫好的Dockerfile文件?
?文件內(nèi)容如下:
?
?
?
沒有紅色提示就成功連接倉庫了
指定源碼的分支
其余不用管,直接來到構(gòu)建?
?
執(zhí)行shell,輸入shell腳本??
#!/bin/bash
#maven打包
/usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true
echo 'package ok!'
echo 'build start!'
cd ./
service_name="education_back"
service_prot=8887
#查看鏡像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
echo "exist $service_name image,IID=$IID"
#刪除鏡像
docker rmi -f $service_name
echo "delete $service_name image"
#構(gòu)建
docker build -t $service_name .
echo "build $service_name image"
else
echo "no exist $service_name image,build docker"
#構(gòu)建
docker build -t $service_name .
echo "build $service_name image"
fi
#查看容器id
CID=$(docker ps | grep "$service_name" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
echo "exist $service_name container,CID=$CID"
#停止
docker stop $service_name
#刪除容器
docker rm $service_name
else
echo "no exist $service_name container"
fi
#啟動
docker run -d -p $service_prot:$service_prot -v /data/app/logs:/data/app/logs --name $service_name $service_name
#查看啟動日志
#docker logs -f $service_name
?這里說一下最后的
#啟動
docker run -d -p $service_prot:$service_prot -v /data/app/logs:/data/app/logs --name $service_name $service_name
其中/data/app/logs是映射到宿主機的/data/app/logs,因為我這個項目里面使用了logback.xml,所以要用到這個路徑的文件夾
?保存回到主頁面!
出現(xiàn)剛剛新建的項目!點擊立即構(gòu)建
控制臺輸出結(jié)果!構(gòu)建成功!??
文章來源:http://www.zghlxwxcb.cn/news/detail-428117.html
?最后因為我使用的是云服務器,所以記得開放使用到的端口。文章來源地址http://www.zghlxwxcb.cn/news/detail-428117.html
到了這里,關(guān)于云服務器使用jenkins+docker自動化部署SpringBoot項目的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!