电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

docker+gitlab+jenkins從零搭建自動化部署

瀏覽:170日期:2024-10-26 09:29:05
目錄前言:一、安裝Docker二、Docker 安裝Jenkins1. 搜索倉庫中的jenkins鏡像2. 通過拉取jenkins鏡像到本地images中3. 啟動jenkins容器三、登陸Jenkins的初始化操作四、全局工具配置(配置環境)五、安裝Maven插件 點擊系統管理?插件管理六、新建任務,完成自動化部署前言:

通過幾天的學習和自己的理解,整理了下Docker+Jenkins的自動部署教程,如有不足,還請多多指點,謝謝!

Docker的優點:

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。結構:客戶端→Docker_Host(宿主機)→倉庫三個概念 容器→鏡像→倉庫

為什么使用Jenkins:

傳統的部署項目,當項目完成后,需要我們自己從代碼倉庫中拉取代碼到本地,完成打包,然后上傳到服務器,然后配置項目的運行環境并啟動。這樣顯然有一點的缺陷,我們在開發中存在的一些bug由于不能即時的發現,導致后期修復bug而存在導致連鎖效應的風險。而且我們經常修改代碼后,需要重新打包,然后上傳到服務器,然后運行,當項目很多的時候,這樣的一些重復性機械操作導致我們有些力不從心。而我們使用Jenkins后真正的幫我們實現了自動化部署,當我們代碼更新后,push到代碼倉庫中,我們只需在Jenkins的可視化界面點擊構建項目,Jenkins便會根據我們配置的倉庫地址自動拉取代碼,自動打包,并運行,完成自動化部署。

一、安裝Docker

Docker 要求 CentOS 系統的內核版本在 3.10以上 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker。

1. 通過 uname -r 命令查看你當前的內核版本

uname -r

2. 使用 root 權限登錄 Centos。確保 yum 包更新到最新。

yum -y update

3. 卸載舊版本(如果安裝過舊版本的話)

yum remove docker docker-common docker-selinux docker-engine

4. 安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

yum install -y yum-utils device-mapper-persistent-data lvm2

5. 設置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6. 可以查看所有倉庫中所有docker版本,并選擇特定版本安裝

yum list docker-ce --showduplicates | sort -r

7. 安裝docker

sudo yum install -y docker-ce #由于repo中默認只開啟stable倉庫,故這里安裝的是最新穩定版18.03.1

8. 啟動并加入開機啟動

systemctl start docker //啟動dockersystemctl enable docker //設置為開機啟動

9. 驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

docker version二、Docker 安裝Jenkins1. 搜索倉庫中的jenkins鏡像

docker search jenkins

jenkins 表示你要搜索的鏡像名,DESCRIPTION中包含jenkins的也會顯示出來

2. 通過拉取jenkins鏡像到本地images中

docker pull jenkins/jenkins注意這里拉取的是jenkins/jenkins版本,因為先前的jenkins版本只有2.60,導致安裝jenkins插件失敗拉取的時候可以指定版本,例如docker pull java:8 表示拉取的java版本為8; 不指定版本則默認為最新版本 latest 3. 啟動jenkins容器

docker run --name myjenkins -d -p 8081:8080 -p 8085:8085 jenkins/jenkins

?name myjenkins 指定容器NAME為myjenkins-d 表示后臺運行-p 8081:8080 表示Docker Host(運行Docker的主機)端口 與Docker容器內運行的端口映射, 8081表示DockerHost的端口,8080即容器內的端口; 外部訪問8081即可訪問到Docker容器的8080端口jenkins/jenkins 表示啟動的鏡像為jenkins/jenkins ,查看本地鏡像可以通過docker images查看

說明: 1.容器內的端口外部無法直接訪問,因為要配置Docker Host與容器的端口映射,映射可以配置多個;由于后面需要部署項目,提前把項目的端口號-p 8085:8085配置好,不配置的也可以,后面去修端口映射文件即可。 2.其實我們也可以省略第二步pull操作,直接啟動一個容器,Docker會先去本地images中查看是否有這個鏡像,如果沒有的話會去DockerHub倉庫去下載。

三、登陸Jenkins的初始化操作

1. 訪問jenkins界面,例如我虛擬機IP是192.168.199.188 ,輸入192.168.199.188:8081,回車顯示以下界面

docker+gitlab+jenkins從零搭建自動化部署

進入安裝Jenkins的容器內

docker exec -it myjenkins bash// 進入指定容器,myjenkins表示我們啟動容器時給容器指定的名稱cat /var/jenkins_home/secrets/initialAdminPassword` //查看密碼,復制密碼粘貼到文本框內

操作圖示:

docker+gitlab+jenkins從零搭建自動化部署

2. 安裝插件,這里就安裝jenkins推薦的插件

點擊安裝推薦插件:

docker+gitlab+jenkins從零搭建自動化部署

3. 自動安裝中,需要稍等片刻,安裝完成點擊繼續:

docker+gitlab+jenkins從零搭建自動化部署

4. 創建管理員用戶,也可以直接使用admin賬戶繼續:

docker+gitlab+jenkins從零搭建自動化部署

5. 實例配置 直接保存完成:

docker+gitlab+jenkins從零搭建自動化部署

6. 開始使用Jenkins:

docker+gitlab+jenkins從零搭建自動化部署

7. 進入Jenkins主頁:

docker+gitlab+jenkins從零搭建自動化部署

四、全局工具配置(配置環境)

點擊系統管理?全局工具配置

1. 配置JDK: 取消自動安裝(一般容器內都安裝好了JDK環境), 進入docker容器,使用echo $JAVA_HOME 獲取jdk安裝路徑,將路徑復制到JAVA_HOME文本框

docker+gitlab+jenkins從零搭建自動化部署

2. 配置Maven: 指定name,自動安裝,點擊Save即可

docker+gitlab+jenkins從零搭建自動化部署

五、安裝Maven插件 點擊系統管理?插件管理

docker+gitlab+jenkins從零搭建自動化部署

六、新建任務,完成自動化部署

1. 回到首頁,點New 任務,構建一個Maven項目

docker+gitlab+jenkins從零搭建自動化部署

2. 點擊確定,回到首頁我們發現多了一個名為SpringBoot_AutoTest1的任務(上面的任務是以前的,不用理會)

docker+gitlab+jenkins從零搭建自動化部署

3. 點擊項目名SpringBoot_AutoTest1 --> 點擊配置

3.1 源碼管理(配置git倉庫地址,Jenkins會從遠程倉庫拉取代碼):

docker+gitlab+jenkins從零搭建自動化部署

3.2 構建配置(Jenkin拉取代碼后會自動執行打包命令):

docker+gitlab+jenkins從零搭建自動化部署

3.3 配置shell腳本(Jenkins打包完成后,自動執行shell腳本啟動項目,實現自動化部署),最后保存即可:

docker+gitlab+jenkins從零搭建自動化部署

附shell腳本:

#!/bin/bash# #!/bin/bash是指此腳本使用/bin/bash來解釋執行。其中,#!是一個特殊的表示符,其后,跟著解釋此腳本的shell路徑。bash只是shell的一種,還有很多其它shell,如:sh,csh,ksh,tcsh,...# #!/bin/bash只能放在第一行,如果后面還有#!,那么只能看成是注釋。#服務名稱SERVER_NAME=SpringBoot_AutotTest#源jar路徑,mm打包完成之后,target目錄下的jar包名稱,也可選擇成為war包,war包 可移動到Tomcat的。JAR_NAME=jekins-0.0.1-SNAPSHOT#target打包生成jar包的目錄JAR_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/target # 以具體的打包位置為準,可以先構建一次項目,通過日志查看打包的目錄#打包完成之后,把iar包移動到運行jar包的目錄JAR_WORK_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/targetecho '查詢進程id-->$SERVER_NAME'PID=`ps -ef | grep '$SERVER_NAME' | awk ’{print $2}’`echo'得到進程ID: $PID'echo'結束進程'for id in $PIDdokill -9 $idecho 'killed $id' doneecho'結束進程完成'#復制jar包到執行目錄_echo' 復制jar包到執行目錄:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH'cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATHecho'復 制jar包完成'cd $JAR_WORK_PATH#修改文件權限chmod 755 $JAR_NAME.jar#前臺啟動#java -jar $JAR_NAME.jar#后臺啟動BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &

到此這篇關于docker+gitlab+jenkins從零搭建自動化部署的文章就介紹到這了,更多相關docker+gitlab+jenkins自動化部署內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Docker
相關文章:
主站蜘蛛池模板: 工业CT-无锡璟能智能仪器有限公司| 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 中医治疗皮肤病_潍坊银康医院「山东」重症皮肤病救治平台 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 电动高压冲洗车_价格-江苏速利达机车有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 金属波纹补偿器厂家_不锈钢膨胀节价格_非金属伸缩节定制-庆达补偿器 | 七维官网-水性工业漆_轨道交通涂料_钢结构漆 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 气体热式流量计-定量控制流量计(空气流量计厂家)-湖北南控仪表科技有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 隔爆型防爆端子分线箱_防爆空气开关箱|依客思 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 缓蚀除垢剂_循环水阻垢剂_反渗透锅炉阻垢剂_有机硫化物-郑州威大水处理材料有限公司 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 | 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 硬齿面减速机_厂家-山东安吉富传动设备股份有限公司 | 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 |