CentOS7 安裝 Docker 并用 Jenkins 做持續(xù)集成

Docker => 1.31.1

Jenkins => 2.174

安裝Docker

[root@localhost ~]# yum install -y docker

關(guān)于安裝Docker的步驟塌忽,詳情見我之前的博客

在Docker里面安裝軟件的鏡像膊存,我都是安裝的最新版本

安裝MySQL

[root@docker ~]# docker pull mysql

安裝Tomcat

[root@docker ~]# docker pull tomcat

安裝jenkins佳晶,這里要注意了挤巡,不能直接用jenkins這個(gè)鏡像捣郊,得用jenkins/jenkins這個(gè)鏡像,如果你用了jenkins鏡像的話袄简,后面安裝jenkins的相關(guān)插件會出錯(cuò)版本不兼容的情況

[root@docker ~]# docker pull jenkins/jenkins

在當(dāng)前用戶的家目錄里面創(chuàng)建一個(gè)jenkins_home目錄豺谈,用來存放jenkins運(yùn)行過程中所產(chǎn)生和文件,我的是直接放在/root/文件夾下

[root@docker ~]# mkdir -p /root/jenkins_home

生成一個(gè)可以運(yùn)行的容器

[root@docker ~]# docker run -d -v /root/jenkins_home/:/var/jenkins_home -p 8080:8080 -p 50000:50000 --name jenkins jenkins:jenkins

如果執(zhí)行這個(gè)命令的時(shí)候铝量,報(bào)

touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied

Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

這是因?yàn)闄?quán)限不足導(dǎo)致的倘屹,那就請執(zhí)行一下下面這條語句然后再啟動容器

[root@docker ~]# chown -R 1000:1000 /root/jenkins_home

啟動容器后我們找到下面這段日志

INFO:

(*************************************************************

(*************************************************************

(*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.

Please use the following password to proceed to installation:

dc89901a2b3141539c6ba6ad5a20d6cc

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

(*************************************************************

(*************************************************************

(*************************************************************

或者用語句

[root@docker ~]# docker exec -it jenkins /bin/bash

[root@docker ~]# cat /var/jenkins_home/secrets/initialAdminPassword

來查看jenkins生成的密碼 dc89901a2b3141539c6ba6ad5a20d6cc

啟動完成后,我們用瀏覽器來訪問

我的地址是 http://192.168.0.177:8080 192.168.0.177是我的CentOS虛擬機(jī)地址

在管理員密碼里輸入我們之前查看到的密碼:dc89901a2b3141539c6ba6ad5a20d6cc

image

選擇安裝推薦的插件

image

等待插件全部安裝完成

image

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

image

輸入你的帳戶信息慢叨,點(diǎn)保存并完成

實(shí)例配置纽匙,默認(rèn)就好了

image

保存并完成后

image

就可以使用了

image

在創(chuàng)建一個(gè)新任務(wù)之前,我們安裝兩個(gè)插件拍谐,一個(gè)是Maven的插件哄辣,一個(gè)SSH的插件

系統(tǒng)管理->插件管理

image

在可選插件 搜索 Maven Integration 然后選擇 直接安裝

image

安裝完成后,再安裝SSH的插件 搜索 Publish Over SSH 然后選擇 直接安裝

image

安裝完成后赠尾,重啟jenkins

image

登陸

我們做一些配置 系統(tǒng)管理 -> 系統(tǒng)配置 -> Publish over SSH

在做配置之前力穗,我們要在CentOS端生成私鑰

[root@docker ~]# ssh-keygen -t rsa

image

Passphrase 生成私鑰時(shí)填寫的密碼,如果沒有填寫密碼气嫁,這里為空

Path to key 私鑰的路徑当窗,因?yàn)槲业氖窃贒ocker里面運(yùn)行,因?yàn)闄?quán)限的關(guān)系寸宵,這里會提示找不到文件

Key 私鑰的串崖面,打開私鑰文件獲得

Path to key 和 Key 二選一填寫

Name 給SSH Server取個(gè)名字,可以隨意取

Hostname 主機(jī)地址

Username 登陸用戶

Remote Directory 登陸后默認(rèn)打開的文件夾

配置完后梯影,點(diǎn)應(yīng)用 -> 保存

再配置 系統(tǒng)管理 -> 全局工具配置

因?yàn)槲沂亲叩腄ocker鏡像運(yùn)行巫员,因?yàn)闄?quán)限的原因,所以這里面的配置我都是選的自動安裝

image

安裝JDK

image

這里要注意甲棍,在Oracle網(wǎng)站下載的話简识,得輸入Oracle的用戶名和密碼,沒有的話感猛,創(chuàng)建一個(gè)七扰。

Git默認(rèn)

image

安裝Maven

image

點(diǎn)應(yīng)用 保存

這些配置好了,只有等第一次構(gòu)建項(xiàng)目的時(shí)候陪白,Jenkins才會去下載安裝相關(guān)的插件

這里要注意了颈走,如果沒有用Docker來啟Jenkins,那就可以用手動指定相關(guān)的路徑咱士。Git配置的時(shí)候立由,要指定到具體的文件

新建一個(gè)任務(wù)

image

輸入一個(gè)任務(wù)名稱 選擇構(gòu)建一個(gè)maven項(xiàng)目 確定

image

源碼配置

image

Repository URL 倉庫的URL

Credentials 配置登陸倉庫的用戶名和密碼

Branch Specifier (blank for 'any') 要拉取的分支

構(gòu)建觸發(fā)器

image

勾選 輪詢SCM 日程表 填 H/1 * * * * 每小時(shí)一次轧钓,按需配置。

Build

image

Root POM pom.xml文件路徑锐膜,一般都在項(xiàng)目的根目錄下面

構(gòu)建后操作

我們選擇 Send build artifacts over SSH

image

這個(gè)配置就是構(gòu)建完成后毕箍,我們把項(xiàng)目根目錄下面的target/visa.war自動發(fā)送到我們在基礎(chǔ)配置里面配置的路徑/root/tomcat/publish文件夾里面

Remote directory 遠(yuǎn)程目錄,我們直接放根目錄枣耀,所以留空

Exec command 先不做任何操作

應(yīng)用 保存 到以下頁面霉晕。

image

點(diǎn)立即構(gòu)建 然后 轉(zhuǎn)到 控制臺輸出 就可以看到構(gòu)建日志了

image

控制臺輸出

image

直到看到這個(gè)庭再,我們就構(gòu)建成功了

image

然后我們在服務(wù)器路徑

/root/test_jenkins_home/workspace/visa/target 下面找到 visa.war 文件了

也能在

/root/tomcat/publish 下面找到visa.war 文件了

到這一步為止捞奕,我們構(gòu)建完項(xiàng)目后,就能生成一個(gè)項(xiàng)目的 war 包了拄轻。

這里我們先用Docker來打包鏡像后部署項(xiàng)目

在/root/tomcat/publish下面新建Dockerfile

[root@docker ~]# vim /root/tomcat/publish/Dockerfile

輸入以下代碼

from docker.io/tomcat:latest #你的 tomcat的鏡像

MAINTAINER visa_test@163.com #作者

COPY visa.war /usr/local/tomcat/webapps #放置到tomcat的webapps目錄下

保存

生成一個(gè)名為visa的鏡像 記得后面有一個(gè)點(diǎn)颅围,很重要。

[root@docker ~]# docker build -t visa .

啟動新的名為visa的容器恨搓,用visa的鏡像

[root@docker ~]# docker run -p 80:8080 --name visa visa

到這里為止院促,項(xiàng)目就能啟動成功了

下面進(jìn)行自動化部署配置

image

點(diǎn)配置后找到構(gòu)建后操作

image

在Exec command 中輸入

cd /root/tomcat/publish

docker stop visa

docker rm visa

docker rmi visa

docker build -t visa .

docker run -p 80:8080 --name visa visa

因?yàn)槲覀兠看沃灰c(diǎn)構(gòu)建,我們就完成整個(gè)流程的自動化斧抱。所以上面這一些命令常拓,就是一套組合

cd /root/tomcat/publish => 定位到發(fā)布目錄

docker stop visa => 停止之前已運(yùn)行的容器

docker rm visa => 刪除之前啟用的容器

docker rmi visa => 刪除之前構(gòu)建好的鏡像

docker build -t visa . => 重新構(gòu)建本次新的鏡像

docker run -p 80:8080 --name visa visa => 啟用并運(yùn)行新的容器

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辉浦,隨后出現(xiàn)的幾起案子弄抬,更是在濱河造成了極大的恐慌,老刑警劉巖宪郊,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掂恕,死亡現(xiàn)場離奇詭異,居然都是意外死亡弛槐,警方通過查閱死者的電腦和手機(jī)懊亡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乎串,“玉大人店枣,你說我怎么就攤上這事√居” “怎么了艰争?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長桂对。 經(jīng)常有香客問我甩卓,道長,這世上最難降的妖魔是什么蕉斜? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任逾柿,我火速辦了婚禮缀棍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘机错。我一直安慰自己爬范,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布弱匪。 她就那樣靜靜地躺著青瀑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萧诫。 梳的紋絲不亂的頭發(fā)上斥难,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機(jī)與錄音帘饶,去河邊找鬼哑诊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛及刻,可吹牛的內(nèi)容都是我干的镀裤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼缴饭,長吁一口氣:“原來是場噩夢啊……” “哼暑劝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颗搂,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤担猛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后峭火,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毁习,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年卖丸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纺且。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稍浆,死狀恐怖载碌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情衅枫,我是刑警寧澤嫁艇,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站弦撩,受9級特大地震影響步咪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜益楼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一猾漫、第九天 我趴在偏房一處隱蔽的房頂上張望点晴。 院中可真熱鬧,春花似錦悯周、人聲如沸粒督。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屠橄。三九已至,卻和暖如春闰挡,著一層夾襖步出監(jiān)牢的瞬間锐墙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工解总, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贮匕,地道東北人姐仅。 一個(gè)月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓花枫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掏膏。 傳聞我的和親對象是個(gè)殘疾皇子劳翰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容