gitlab-ci+docker部署CI服務(wù)器

持續(xù)集成(CI宛瞄,Continuous integration)逊拍。持續(xù)集成是一種開(kāi)發(fā)實(shí)踐寞忿,通過(guò)多次集成和自動(dòng)化構(gòu)建來(lái)發(fā)現(xiàn)錯(cuò)誤驰唬,使得代碼保持高質(zhì)量。這里介紹針對(duì)Ruby on Rails 項(xiàng)目罐脊,采用gitlab-ci進(jìn)行部署的基本過(guò)程以及注意事項(xiàng)定嗓。

一、gitlab的CI安裝與使用

1萍桌、安裝gitlab-ci-multi-runner
2宵溅、啟動(dòng)

gitlab-ci-multi-runner start

3、注冊(cè)runner

gitlab-cimulti-runner register

按照提示輸入相關(guān)的信息(跑runner的機(jī)器url上炎、gitlab上的token以及一些其他信息)
4恃逻、此時(shí)回到gitlab可以查看到注冊(cè)好的runner雏搂。
5、.gitlab-ci.yml文件配置CI要去做的操作

二寇损、Docker的基本操作

Docker中有鏡像(image)和容器(container)的概念凸郑。
可以在這里找到所有基礎(chǔ)的鏡像,也就是一個(gè)系統(tǒng)或服務(wù)等矛市;容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例芙沥,每個(gè)容器都是相互隔離的,以此保證安全浊吏。
tip:這里有一本書(shū)幫助入門(mén)而昨。
1、運(yùn)行鏡像
如果獲得的鏡像不能夠滿足正常使用找田,可以對(duì)docker的image進(jìn)行“定制”

#docker run -t -i image:tag /bin/bash
docker run -t -i ubuntu:14.04 /bin/bash

運(yùn)行了上述命令后直接進(jìn)入到ubuntu14.04歌憨,與正常使用的系統(tǒng)沒(méi)有太大區(qū)別,可以安裝個(gè)人需要的服務(wù)或是其他墩衙,當(dāng)然很多服務(wù)是可以在.gitlab-ci.yml中進(jìn)行配置好的务嫡。
2、鏡像‘定制’好了之后需要commit漆改,保存一個(gè)最新版本(類似git版本控制)

docker commit -m 'description' -a 'something' image_id name:tag

TODO:其他docker的基本操作

三心铃、運(yùn)行流程

每次push了代碼之后,gitlab檢測(cè)到代碼的變化籽懦,自動(dòng)跑runer于个,根據(jù)runner配置文件(.gitlab-ci.yml)進(jìn)行工作,遇到失敗的步驟則終止暮顺,詳情可以在gitlab中的pipeline中看到。詳情見(jiàn)圖

ci.png

by 張業(yè)生秀存!


注意事項(xiàng):

在這里列出我遇到的主要問(wèn)題:
1捶码、關(guān)于docker、gitlab和開(kāi)發(fā)者機(jī)器(mac)之間的通信:
三臺(tái)機(jī)器之間的ssh key要相互確認(rèn)好關(guān)系:mac向gitlab上push代碼或链,docker去gitlab里fetching或者clone代碼惫恼。所以,確保gitlab上擁有二者的sshkey澳盐。(如果有capistrano祈纯,并且是采用docker方式進(jìn)行deploy,則需要注意capistrano部署的目標(biāo)服務(wù)器是否有docker的sshkey)叼耙。

#拷貝ssh public key
ssh-copy-id user@host

2腕窥、docker進(jìn)入image:

docker run -t -i ubuntu:14.04

如果是要進(jìn)入到交互式操作,如shell腳本筛婉,則-t -i兩個(gè)參數(shù)必須使用簇爆,是用來(lái)申請(qǐng)一個(gè)控制臺(tái)與寄主機(jī)器進(jìn)行數(shù)據(jù)交互的,也就是可以在運(yùn)行docker的機(jī)器上看到shell腳本輸出結(jié)果。
3入蛆、.git-ci.yml文件的構(gòu)成:
(1)該文件會(huì)指定任務(wù)讓CI去執(zhí)行响蓉,images指定了一份鏡像,如果自己commit了一份哨毁,則命名應(yīng)該要注意枫甲,因?yàn)镃I會(huì)先去docker遠(yuǎn)程倉(cāng)庫(kù)進(jìn)行查找image,如果沒(méi)找到才會(huì)找本地扼褪,所以想幻,當(dāng)本地命名與遠(yuǎn)端倉(cāng)庫(kù)沖突時(shí),是不會(huì)應(yīng)用本地image的迎捺。
(2)services:
該block下可以寫(xiě)一些需要使用到的服務(wù)举畸,如:postgres、mysql凳枝、others.
這些聲明的服務(wù)會(huì)到docker遠(yuǎn)程倉(cāng)庫(kù)進(jìn)行查找下載抄沮,并集成使用。如果使用的服務(wù)都可以找到岖瑰,則不需要‘定制’image叛买,省去很多事。
(3)如果覺(jué)得在該配置文件中寫(xiě)了很多麻煩的任務(wù)蹋订,可以考慮‘定制’一份image率挣。
(4)自己制作好的image可以提交到docker遠(yuǎn)程倉(cāng)庫(kù),供大家下載使用露戒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末椒功,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子智什,更是在濱河造成了極大的恐慌动漾,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荠锭,死亡現(xiàn)場(chǎng)離奇詭異旱眯,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)证九,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)删豺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人愧怜,你說(shuō)我怎么就攤上這事呀页。” “怎么了叫搁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵赔桌,是天一觀的道長(zhǎng)供炎。 經(jīng)常有香客問(wèn)我,道長(zhǎng)疾党,這世上最難降的妖魔是什么音诫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮雪位,結(jié)果婚禮上竭钝,老公的妹妹穿的比我還像新娘。我一直安慰自己雹洗,他們只是感情好香罐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著时肿,像睡著了一般庇茫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上螃成,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天旦签,我揣著相機(jī)與錄音,去河邊找鬼寸宏。 笑死宁炫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氮凝。 我是一名探鬼主播羔巢,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼罩阵!你這毒婦竟也來(lái)了竿秆?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤稿壁,失蹤者是張志新(化名)和其女友劉穎袍辞,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體常摧,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年威创,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了落午。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肚豺,死狀恐怖溃斋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吸申,我是刑警寧澤梗劫,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布享甸,位于F島的核電站,受9級(jí)特大地震影響梳侨,放射性物質(zhì)發(fā)生泄漏蛉威。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一走哺、第九天 我趴在偏房一處隱蔽的房頂上張望蚯嫌。 院中可真熱鬧,春花似錦丙躏、人聲如沸择示。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)栅盲。三九已至,卻和暖如春废恋,著一層夾襖步出監(jiān)牢的瞬間谈秫,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工拴签, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孝常,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓蚓哩,卻偏偏與公主長(zhǎng)得像构灸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岸梨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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