docker啟動(dòng)的jenkins拉取gitee項(xiàng)目構(gòu)建并部署
docker 拉取jenkins
- https://hub.docker.com/r可以search不同的jenkins版本
docker pull jenkins/jenkins
- 創(chuàng)建掛載目錄 /home/jenkins_home
- 加權(quán)限
chmod 777 /home/jenkins_home
-
docker run -di --name=jenkins -p 9999:8080 -v /home/jenkins_home:/var/jenkins_home jenkins/jenkins:latest
參數(shù)解讀
-p 9999:8080 是端口映射,宿主機(jī)的端口映射到容器的端口,格式為 -p [宿主機(jī)]:[容器]
–name 給容器起一個(gè)別名
-d 是容器后臺(tái)運(yùn)行
-i 開始交互式會(huì)話
-t 模擬一個(gè)終端
-v /home/jenkins_home:/var/jenkins_home 將宿主機(jī)的/home/jenkins_home目錄掛載到 /var/jenkins_home。這樣做是為了把Jenkins文件存放到宿主機(jī)上,就算容器被刪除了,新建一個(gè)新的容器內(nèi)容也不會(huì)丟失。
-v /etc/localtime:/etc/localtime 意義:讓容器使用和服務(wù)器同樣的時(shí)間設(shè)置。
7.打開瀏覽器訪問jenkins localhost:9999
7. 可直接訪問宿主機(jī)的目錄查看密碼/home/jenkins_home/secrets/initialAdminPassword
配置容器jdk和maven
- 安裝jdk
使用docker cp命令將宿主機(jī)的jdk文件夾復(fù)制到容器中
docker cp /workspace/java/jdk1.8.0_231 jenkins:/jdk8
2. 安裝Maven
Dashboard->系統(tǒng)管理->全局工具配置滑到底部的Maven安裝
安裝插件
1.安裝publish over ssh和Maven Integration,沒有中文界面的還可以安裝中文插件Localization: Chinese (Simplified)
配置SSH
- Publish over SSH
點(diǎn)擊新增設(shè)置遠(yuǎn)程服務(wù)器配置
然后點(diǎn)擊高級(jí),配置遠(yuǎn)程服務(wù)器密碼
新建任務(wù)
- 創(chuàng)建任務(wù)
在dashboard點(diǎn)擊新建任務(wù),填寫名字,選擇maven項(xiàng)目 - 項(xiàng)目配置里的 源碼管理
1.選擇git
2.填入代碼倉(cāng)庫(kù)地址,沒有憑證的話點(diǎn)擊添加 - Build設(shè)置編譯參數(shù)
- 構(gòu)建后操作
點(diǎn)擊增加構(gòu)建后操作,選擇Send build artifacts over SSH
jenkins中項(xiàng)目構(gòu)建時(shí)控制臺(tái)輸出構(gòu)建的地址是
Building in workspace /var/jenkins_home/workspace/AutoDeploy
而查看部署jenkins的服務(wù)起中,構(gòu)建對(duì)應(yīng)項(xiàng)目后,生成的target包的目錄是:
/var/jenkins_home/workspace/AutoDeploy/member-api/target
所以 Source files(表示傳輸時(shí)匹配什么文件)應(yīng)該填
member-api/target/member-api-1.0-SNAPSHOT.jar
Remove prefix ( 該操作是針對(duì)上面的source files目錄)應(yīng)該填
member-api/target/
Remote directory (該操作是基于設(shè)定的服務(wù)器目錄進(jìn)行)。這里我的服務(wù)器配置是/. 因此這里應(yīng)該寫
workspace/deploy/java/RemoteDeploy
Exec command
/workspace/deploy/java/RemoteDeploy/start.sh
start.sh
#!/bin/bash
source ~/.bash_profile
source /etc/profile
echo "------start---------"
pid=$(ps -ef | grep -i member-api-1.0-SNAPSHOT.jar | grep -v "grep" | awk '{print $2}')
echo "獲取pid成功"+$pid
if [ -n "$pid" ]; then
kill -9 $pid
echo '解除端口占用'
fi
sleep 3s
echo "啟動(dòng)......"
export BUILD_ID=dontKillMe
nohup java -jar /home/jenkins_home/workspace/AutoDeploy/member-api/target/member-api-1.0-SNAPSHOT.jar &
echo "腳本執(zhí)行完畢"
sleep 2s
pid=`ps -ef|grep member-api-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "部署后的pid進(jìn)程 :$pid"
echo "啟動(dòng)成功"
else
echo "進(jìn)程沒有啟動(dòng)"
fi
Git提交后自動(dòng)構(gòu)建
配置Gitee的WebHooks
http://{你登錄Jenkins賬戶}:{jenkins賬戶配置的apitoken}@{jenkins的ip}:{端口}/job/{project}/build?token={身份驗(yàn)證令牌配置}
例
http://mayun:11af308430260725bb143644910902782d@127.0.0.1:9999/job/AutoDeploy/build?token=abcde
令牌隨便輸,URL格式就是下面那個(gè)英文說明,?token=身份驗(yàn)證令牌配置
然后應(yīng)用保存
結(jié)果
打開jenkins的CSRF安全攔截:
hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true
Gitlab版本
http://{你登錄Jenkins賬戶}:{jenkins賬戶配置的apitoken}@{jenkins的ip}:{端口}/job/{project}/build
例
http://mayun:11af308430260725bb143644910902782d@127.0.0.1:9999/job/AutoDeploy/build
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-508216.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-508216.html
到了這里,關(guān)于docker啟動(dòng)的jenkins拉取gitee項(xiàng)目構(gòu)建并部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!