日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Jenkins是一款開源的CI&CD軟件, 提供超過1000個(gè)插件來支持構(gòu)建、部署、自動(dòng)化, 滿足任何項(xiàng)目的需要。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

Jenkins

Jenkins基于JAVA環(huán)境,可以部署在windows/mac OS/linux上,通過其網(wǎng)頁可視化界面可以輕松操作Jenkins。

接下我們會(huì)分成三部分來講解:

  • Docker安裝Jenkins
  • Jenkins首次登錄配置
  • 構(gòu)建一個(gè)項(xiàng)目完成自動(dòng)部署

docker安裝Jenkins

我們?cè)趌inux環(huán)境使用Docker安裝一個(gè)Jenkins,你需要事先安裝Docker和Docker-compose,如果不知道怎么安裝可以看我的安裝教程文章。

1.遠(yuǎn)程連接linux服務(wù)器,創(chuàng)建docker在主機(jī)的jenkins數(shù)據(jù)映射目錄

cd /opt
mkdir jenkins
cd jenkins
mkdir home

2.(可選)給數(shù)據(jù)映射目錄授權(quán)docker用戶訪問權(quán)限,不然docker啟動(dòng)jenkins時(shí)會(huì)報(bào)權(quán)限的錯(cuò)。如果指定了容器內(nèi)以root用戶運(yùn)行的話,可以不用執(zhí)行授權(quán)命令。

sudo chown -R 1000 home

jenkins容器內(nèi)部的用戶id是1000,而主機(jī)上home目默認(rèn)是root用戶才能訪問,需要授權(quán)給jenkins容器用戶。-R 代表home目錄及其子目錄一起授權(quán)。

3.我們用docker-compose安裝,當(dāng)然你也可以用docker run的方式,創(chuàng)建一個(gè)docker-compose.yml文件。

version: "3"
services:
  jenkins:
    image: jenkins/jenkins:lts
    ports:
      - 8080:8080
      - 50000:50000
    restart: "always"
    container_name: jenkins
    environment:
      JAVA_OPTS: -Duser.timezone=Asia/Shanghai
    volumes:
      - /opt/jenkins/home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
    privileged: true
    user: root

官網(wǎng)中文文檔與英文文檔不一致,不要使用中文文檔中推薦的jenkinsci/blueocean鏡像,使用它構(gòu)建node程序會(huì)出現(xiàn)問題,因?yàn)槲业捻?xiàng)目需要同時(shí)構(gòu)建前端vue項(xiàng)目和后端springboot項(xiàng)目,所以我這里使用jenkins/jenkins:lts版本鏡像。

(可選)最后一行的user:root指的是指定容器內(nèi)部使用root賬號(hào),如果加了這行可以把第二步省略。可以通過docker exec -t jenkins bash命令進(jìn)入到容器內(nèi)部然后運(yùn)行whoami命令查看當(dāng)前用戶。

注意其中我們映射了一個(gè)容器內(nèi)的/var/jenkins_home目錄,這是作為Jenkins的主目錄,里面會(huì)存放Jekins的各種配置和構(gòu)建的項(xiàng)目工作空間,后面需要用到這個(gè)對(duì)應(yīng)的主機(jī)映射路徑。映射的端口可以自行修改。

4.啟動(dòng)Jenkins容器

userdocker-compose up -d

安裝就成功了,你可能看著很簡(jiǎn)單,其實(shí)這一步是最多坑的地方,第二步中的映射目錄授權(quán)很多人沒做導(dǎo)致報(bào)錯(cuò)排查了很久,docker-compose配置文件里有映射了幾個(gè)目錄如果沒有后面也會(huì)讓你頭疼的。

 

Jenkins首次登錄配置

1.首次登陸,解鎖jenkins,啟動(dòng)完成后打開瀏覽器 ip:8080 。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

解鎖Jenkins


獲取密碼,在服務(wù)器控制臺(tái)運(yùn)行以下命令查看密碼,注意這里的目錄是主機(jī)的目錄/opt/jenkins/home,對(duì)應(yīng)的是容器內(nèi)的/var/jenkins_home目錄。

cat /opt/jenkins/home/secrets/initialAdminPassword

2.自定義插件

不了解自己需要的插件的話選擇安裝推薦的插件,如果你是學(xué)習(xí)目的的話可以選擇插件來安裝。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

自定義插件

推薦安裝插件界面

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

推薦安裝插件

選擇插件安裝頁面

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

選擇插件安裝

安裝插件的過程比較久,慢慢等待。

3.創(chuàng)建一個(gè)管理員用戶

安裝完插件會(huì)出現(xiàn)創(chuàng)建管理員用戶的界面。填寫用戶名和密碼以及郵件地址即可。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

創(chuàng)建一個(gè)管理員用戶

4.進(jìn)入jenkins首頁

默認(rèn)有一些地方是英文的,你可以服務(wù)器重啟下jenkins容器就可以變成中文了。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

Jenkins首頁

點(diǎn)擊左側(cè)的Manage Jenkins菜單,中文叫系統(tǒng)管理。下圖紅框中的三個(gè)分別是系統(tǒng)配置、全局工具管理、插件管理。Security部分可以管理憑據(jù)(新建項(xiàng)目時(shí)會(huì)講到)。以后想裝插件、配置用戶、配置Jenkins的話都在這里操作。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

系統(tǒng)管理

構(gòu)建一個(gè)項(xiàng)目完成自動(dòng)部署

1.新建項(xiàng)目

點(diǎn)擊左側(cè)新建Item菜單新建一個(gè)項(xiàng)目。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

新建項(xiàng)目

輸入任務(wù)(項(xiàng)目)名稱,任務(wù)類型選擇Freestrle project,中文的話叫自由風(fēng)格的項(xiàng)目。

創(chuàng)建成功后可以看到任務(wù)里有很多的配置,一般我們配置源碼管理(你的項(xiàng)目git路徑、分支和賬號(hào))、構(gòu)建(寫構(gòu)建shell腳本)就可以了。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

項(xiàng)目配置頁面

2.源碼管理配置

我的項(xiàng)目在gitlab上,使用的是git,所以我們選擇Git,輸入項(xiàng)目的git地址。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

配置git地址

如果你的git倉庫是私有的,會(huì)提示無法連接倉庫,如下圖。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

私有g(shù)it倉庫

這時(shí)我們就需要添加一個(gè)憑據(jù),可以直接點(diǎn)git地址輸入框下方的添加按鈕,選擇Jenkins默認(rèn)域添加一個(gè)憑據(jù)。這一步也可以在系統(tǒng)管理里事先設(shè)置好。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

添加憑據(jù)

在添加憑據(jù)的地方輸入你的git上的賬戶名和密碼點(diǎn)擊添加即可。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

添加憑據(jù)

指定分支,默認(rèn)是 */master,這里我改成 */develop 。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

指定分支

源碼管理部分就可以了,接下去是設(shè)置構(gòu)建步驟,我們跳到構(gòu)建步驟。

3.構(gòu)建配置

我們滾動(dòng)到構(gòu)建步驟部分,點(diǎn)擊增加構(gòu)建步驟,在下拉框中選擇執(zhí)行shell腳本。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

執(zhí)行shell腳本

shell腳本根據(jù)你的項(xiàng)目情況而定,我這里給出一個(gè)我的項(xiàng)目的腳本參考,因?yàn)槲沂峭瑫r(shí)構(gòu)建前后端項(xiàng)目,所以比較復(fù)雜一點(diǎn)。注意這個(gè)shell腳本運(yùn)行的當(dāng)前路徑是主機(jī)上的 /opt/jenkins/home/workspace/項(xiàng)目名 目錄, 注意/opt/jenkins/home 目錄是我對(duì)應(yīng)jenkins容器里的/var/jenkins_home 目錄。可以通過在腳本里寫個(gè)$(pwd)然后構(gòu)建日志中查看具體是什么。需要一定的shell知識(shí),當(dāng)然如果你不用shell腳本也是可以使用其他方式構(gòu)建可以自行查閱。

dir=$(pwd)
echo "jenkins容器項(xiàng)目所在路徑:"
echo $dir
echo "主機(jī)路徑:"
real_dir="/opt/jenkins/home/"${dir#'/var/jenkins_home/'}
echo $real_dir

echo "開始構(gòu)建"

echo "創(chuàng)建前端代碼打包腳本install.sh"
cat>web/install.sh<<EOF
sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories
apk update
apk add yarn
yarn config set registry https://registry.npm.taobao.org/
yarn && yarn build:dev
EOF

echo "打包前端代碼生成dist目錄"
docker run --rm --net=host -v ${real_dir}/web:/web -v /root/.cache/yarn/cmp:/usr/local/share/.cache/yarn -w /web node:10-alpine3.11 sh install.sh

echo "拷貝前端dist目錄到后端項(xiàng)目的public目錄,用于與后端公用端口,解決跨域問題"
mkdir -p ./src/main/resources/public
cp -r ./web/dist/* ./src/main/resources/public

echo "后端構(gòu)建"
mkdir -p /root/.m2

echo "后端mvn打包jar文件"
docker run --rm -v /root/.m2:/root/.m2 -v ${real_dir}:/cmp -w /cmp maven mvn clean install -DskipTests

echo "復(fù)制jar文件到指定docker目錄"
mkdir -p docker && cp target/cmp-0.0.1-SNAPSHOT.jar ./docker && cd docker

echo "在指定docker目錄創(chuàng)建Dockerfile文件用于生成docker容器"
cat>Dockerfile<<EOF
FROM openjdk:8u242-jdk
COPY cmp-0.0.1-SNAPSHOT.jar /
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENTRYPOINT ["java", "-jar", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5008", "/cmp-0.0.1-SNAPSHOT.jar"]
EOF

echo "清理已有容器及鏡像資源"
container="Jenkins-project01"
image=${container}

if docker ps | grep ${container} ;then
    docker stop ${container}
fi

if docker ps -a | grep ${container};then
    docker rm ${container}
fi

if docker images | grep ${image};then
    docker rmi ${image}
fi

echo "鏡像制作"
docker build -t ${image} .
echo "容器運(yùn)行"
docker run -d --restart=always --name ${container} -v /var/logs:/var/logs -p 8888:8888  ${image} --spring.profiles.active=dev -Duser.timezone=GMT+8

4.構(gòu)建項(xiàng)目查看控制臺(tái)信息

在任務(wù)頁面點(diǎn)擊立即構(gòu)建,然后可以在下方的構(gòu)建歷史中點(diǎn)擊右側(cè)時(shí)間位置的小箭頭打開控制臺(tái)輸出信息。

Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

查看控制臺(tái)輸出


Docker安裝Jenkins+Shell腳本自動(dòng)化部署項(xiàng)目

控制臺(tái)內(nèi)容

好了,以上就是Jenkins的全部?jī)?nèi)容了,希望本文對(duì)你有所幫助。

分享到:
標(biāo)簽:Jenkins
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定