Jenkins+Blue Ocean】docker部署Jenkins,編寫Jenkinsfile創(chuàng)建流水線,一篇解決“賊帶勁”

      網(wǎng)友投稿 1952 2025-03-31

      @[toc]

      前言

      Jenkins 是一個持續(xù)集成工具,可用于自動化與構(gòu)建、測試、交付或部署軟件相關(guān)的各種任務(wù)。

      Jenkins 可以通過本機(jī)系統(tǒng)包、Docker 安裝,甚至可以由任何安裝了 Java 運行時環(huán)境 (JRE) 的機(jī)器獨立運行。

      持續(xù)集成工具還有Drone、Gitlab-CICD(gitlab內(nèi)置cicd)還要kubesphere容器云平臺也能做持續(xù)集成(CICD)kubesphere是借助于Jenkins來實現(xiàn)CICD,本身沒有該功能。

      本章就帶各位簡單搭建Jenkins和使用Jenkins+Blue Ocean及編寫Jenkinsfile流程。

      Drone使用,請點擊這里

      :【Drone+Gitlab】一條龍服務(wù),直接起飛 — 從介紹->部署->配置->寫.drone.yml流水線+常見的報錯解決

      學(xué)習(xí)kubesphere前,強(qiáng)烈建議閱讀

      :【排坑指南之kubeSphere】2022年最新版-”kubeSphere3.2.1 Paas容器云平臺“使用DevOps-CICD之”排坑指南“

      準(zhǔn)備篇

      硬件要求

      最小256MB內(nèi)存, 推薦512MB以上

      10GB硬盤空間

      環(huán)境要求

      Linux系統(tǒng)

      docker

      docker-compose

      安裝使用docker-compsoe點這里

      操作篇

      部署

      這里介紹了三種方式部署,其他方式部署(WAR包部署、yum部署);

      下面我們使用 jenkinsci/blueoceanDocker鏡像運行,因為jenkinsci/blueocean集成了blueocean,省去Jenkins內(nèi)部安裝blueocean插件的步驟(方便快捷)。

      使用docker部署

      docker run \ -u root \ -dit \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v /var/jenkins-data:/var/jenkins_home \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean

      參數(shù)解釋:

      run: 啟動運行一個容器;

      -u:root身份啟動容器,具有root權(quán)限;

      【Jenkins+Blue Ocean】docker部署Jenkins,編寫Jenkinsfile創(chuàng)建流水線,一篇解決“賊帶勁”

      dit:后臺交互式方式運行容器(常用);

      –name:指定容器名稱為jenkins;

      -p:8080是Jenkins web訪問界面(容器的端口8080映射到主機(jī)上的端口8080);

      基于JNLP的Jenkins代理通過TCP端口50000與Jenkins主站進(jìn)行通信(容器的端口50000 映射到主機(jī)上的端口50000);

      -v:/var/jenkins_home Jenkins主目錄,每次重新啟動Jenkins,會保持Jenkins當(dāng)前狀態(tài)(存放Jenkins服務(wù)器數(shù)據(jù));

      /usr/bin/docker 宿主機(jī)docker命令掛載給容器內(nèi)使用(我們稱為:docker in docker方式);

      /var/run/docker.sock Docker守護(hù)程序監(jiān)聽通過基于Unix的套接字文件,這里用于與Dcoker守護(hù)進(jìn)程通信(不添加的話容器內(nèi)docker命令,不能與守護(hù)進(jìn)程通信);

      使用docker-comopse部署

      不會docker-compsoe點這里

      在宿主機(jī)編寫docker-compose.yaml文件,文件內(nèi)容如下;

      下列參數(shù)具體意思和上述類似,這里不過多贅訴;

      version: '3' #定義版本 services: jenkins: container_name: jenkins image: jenkinsci/blueocean:latest user: root priveleged: true #開啟特權(quán) ports: #定義映射端口 - 8080:8080 - 50000:50000 volumes: #定義掛載卷 - /var/jenkins-data:/var/jenkins_home - /usr/bin/docker:/usr/bin/docker - /var/run/docker.sock:/var/run/docker.sock

      啟動docker-compose對應(yīng)的文件內(nèi)容定義的services服務(wù):

      $ docker-compose up -d #后臺啟動 [+] Running 2/2 ? Network test_default Created 0.1s ? Container jenkins Started 1.3s

      docker-compose常用指令:

      $ docker-compose ps #查看狀態(tài)信息 NAME COMMAND SERVICE STATUS PORTS jenkins "/sbin/tini -- /usr/…" jenkins running 0.0.0.0:8081->8080/tcp, 0.0.0.0:50001->50000/tcp, :::8081->8080/tcp, :::50001->50000/tcp $ docker-compose down #停止后移除 [+] Running 2/2 ? Container jenkins Removed 0.8s ? Network test_default Removed

      kubernetes方式部署

      參考地址:https://www.jenkins.io/doc/book/installing/kubernetes/

      使用

      瀏覽器訪問 宿主機(jī)ip+8080端口:

      出現(xiàn)如下頁面我們可以使用兩種方式查看密碼:

      查看宿主機(jī)上的密碼文件(圖片上是容器內(nèi)的密碼文件路徑)

      $ cat /var/jenkins-data/secrets/initialAdminPassword 3b1050b5ebbb4539a14588f0601e163b

      使用查看jenkins啟動日志方式,查看密碼,如下圖(兩個星號中間)

      $ docker logs jenkins

      選擇安裝推薦的插件

      這里需要等待幾分鐘(這里如果出現(xiàn)錯誤,檢查一下網(wǎng)絡(luò)是否可以上網(wǎng)):

      創(chuàng)建管理員用戶后,實例配置保持默認(rèn)

      流水線

      創(chuàng)建多分支流水線

      下面我們會使用多分支流水線、Jenkinsfile、Blue Ocean;

      多分支流水線創(chuàng)建時會檢查代碼倉庫所有分支的流水線任務(wù)(Jenkinsfile);

      在創(chuàng)建流水線之前還需要明白一個概率叫Jenkinsfile,因為接下來的步驟在它基礎(chǔ)之上(核心);

      Blue Ocean是Jenkins Pipeline可視化界面,提高Jenkins用戶體驗;

      官方定義:Jenkins Pipeline 用于將“簡單到復(fù)雜”的交付流程實現(xiàn)為“持續(xù)交付即代碼”。Jenkins Pipeline 的定義通常被寫入到一個文本文件中(稱為 Jenkinsfile ),該文件可以被放入項目的源代碼控制庫中;

      總結(jié)一句話:Jenkinsfile是一個文本文件記錄Pipeline (流水線)的執(zhí)行Job(任務(wù))的步驟;

      創(chuàng)建多分支流水線:點擊新建Item–>輸入任務(wù)名稱–>選擇多分支流水線–>點擊確定,如下圖所示;

      分支源:添加git倉庫地址–>創(chuàng)建jenkins憑證–>點擊保存;

      這里倉庫地址使用的是國內(nèi)gitee(碼云)倉庫(拉取代碼比較快),當(dāng)然也可以使用github、gitlab、gogs等倉庫服務(wù)器;

      學(xué)習(xí)搭建gitlab個人倉庫服務(wù)器,點擊這里

      本案例使用的gitee代碼倉庫地址(包含Jenkinsfile文件內(nèi)容)各位自行獲取吧!!!

      點擊保存后,Jenins會自動掃描運行Jenkinsfile文件任務(wù);檢查輸出Log最后的狀態(tài)是否出現(xiàn) Finished: SUCCESS 字段(表示完成);

      點擊狀態(tài)查看

      打開Blue Ocean查看

      Blue Ocean顯示所有Jenkinsfile的階段都成功完成(使用Blue Ocean創(chuàng)建流水線也是可以的)

      總結(jié)

      這里的演示的Jenkinsfile很基礎(chǔ),想深入學(xué)習(xí)Jenkinsfile請參考官方文檔;

      使用Jenkinsfile創(chuàng)建流水線的流程介紹完畢,各位快去試著學(xué)習(xí)部署自己的項目吧!!!

      推薦閱讀

      【kubernetes】新版helm3的三大概念+快速指南+自定義charts模板

      【容器】docker-comopse安裝+案例練習(xí)

      【GitLab】使用Docker和Docker-Compose部署-個人、私有代碼倉庫

      【kubevirt】VirtualMachineInstanceReplicaSet(vmis)-擴(kuò)縮容-彈性伸縮

      【openstack】cloudkitty組件,入門級安裝(快速)

      【openstack】Designate組件,入門級安裝(快速)

      【Istio是什么?】 還不知道你就out了,一文40分鐘快速理解

      【Istio實際操作篇】Istio入門10分鐘快速安裝

      【代理是什么?】nginx快速入門+反向代理hexo個人博客

      【還不會搭建博客嗎?】centos7系統(tǒng)部署hexo博客新手入門-進(jìn)階,看這一篇就夠了

      【沒接觸過kubevirt?】15分鐘快速入門kubevirt

      參考資料

      https://www.jenkins.io/zh/doc/

      Docker Jenkins 云計算

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:SUMIFS函數(shù)的公式語法及使用方法實例
      下一篇:SMS,OMS,CDM,DRS遷移工具的操作指導(dǎo)以及常見問題的解決方法
      相關(guān)文章
      亚洲系列中文字幕| 久久丫精品国产亚洲av不卡 | 亚洲成年轻人电影网站www| 亚洲一区二区三区国产精品| 亚洲精品tv久久久久久久久久| 日本亚洲欧美色视频在线播放| 亚洲精品国产摄像头| 国产精品亚洲综合久久| 久久精品国产亚洲AV久| 丁香婷婷亚洲六月综合色| 国产成人精品日本亚洲专| 亚洲制服丝袜一区二区三区| 亚洲午夜电影在线观看| 亚洲一卡2卡3卡4卡国产网站| 337p日本欧洲亚洲大胆艺术| 亚洲视频免费播放| 亚洲嫩草影院在线观看| 亚洲同性男gay网站在线观看| 亚洲国产精品无码久久久| 亚洲一区中文字幕在线电影网| 亚洲乱码一二三四区麻豆| wwwxxx亚洲| 亚洲精品欧美综合四区| 国内成人精品亚洲日本语音 | 亚洲成人午夜在线| 亚洲黄色在线观看视频| 亚洲熟妇av一区二区三区下载| 91亚洲国产成人久久精品网址| 亚洲第一区视频在线观看| 亚洲中文字幕无码av在线| 亚洲第一男人天堂| 久久久久久亚洲精品无码| 亚洲第一区在线观看| 中文字幕亚洲一区| 亚洲av无码乱码国产精品| 亚洲色图.com| 亚洲综合激情五月色一区| 精品亚洲视频在线| 青青草原亚洲视频| 亚洲成熟xxxxx电影| 亚洲人成7777|