docker下的jenkins前端集成環(huán)境配置

注:默認(rèn)前提是你已經(jīng)在服務(wù)器上用docker裝好了jenkins容器并啟動踩衩。

#1.安裝插件(系統(tǒng)設(shè)置-插件管理-可選插件)

  • Build Timestamp Plugin(構(gòu)建時間戳)
  • Publish Over SSH (ssh服務(wù)嚼鹉,把構(gòu)建好的文件ssh到相應(yīng)服務(wù)器)
  • GitHub plugin(有可能默認(rèn)已經(jīng)安裝了怠益,負(fù)責(zé)觸發(fā)hook)
  • GitHub API plugin(有可能默認(rèn)已經(jīng)安裝了挣饥,負(fù)責(zé)觸發(fā)hook)
  • nodejs plugin(nodejs服務(wù))
    !!全部裝完建議重啟jenkins服務(wù),我的重啟后變成中文版的了- -, 在服務(wù)器上 docker restart jenkins;

#2.配置相應(yīng)的插件(系統(tǒng)管理-系統(tǒng)設(shè)置)

  • 找到 Build Timestamp (上面的插件提供的)排宰,進(jìn)行如下設(shè)置:
    1.png
  • 找到 Publish over SSH萌朱,設(shè)置:
    2.png

    那些都不需要設(shè)置宴树,直接用我們的容器的私鑰就好了,如何獲取私鑰:
    (1) docker exec -it jenkins sh 進(jìn)入容器
    (2) ssh-keygen -m PEM -t rsa -b 4096生成ssh私鑰及公鑰(默認(rèn)在 ~/.ssh 即 /root/.ssh 目錄中)晶疼,可以一路回車寒匙,若設(shè)密碼的話,需在“Passphrase”中填寫
    (3) cat ~/.ssh/id_rsa 查看私鑰,把私鑰copy到上圖的“key”設(shè)置中
    (4) cat ~/.ssh/id_rsa.pub查看公鑰,把公鑰copy到宿主機(jī)服務(wù)器的 ~/.ssh/authorized_keys 中, 這樣服務(wù)器就能接受jenkins容器的ssh推送了。
    然后繼續(xù)配置SSH Servers字段:
    4.png

(1) name: ssh節(jié)點名稱削咆,建議協(xié)商服務(wù)器的概要挺尿,不要設(shè)置成你項目的名字窄俏,因為jenkins不可能只服務(wù)你一個項目仰坦,肯定有很多項目
(2) hostname: 遠(yuǎn)程服務(wù)器IP
(3) username 登錄服務(wù)器時使用的用戶名
(4) remote directory 推送到遠(yuǎn)程服務(wù)器的目錄妈橄,建議根目錄溪椎,在job任務(wù)里在仔細(xì)的填寫ssh的具體目錄


#3.配置安裝nodejs環(huán)境(系統(tǒng)管理-全局工具配置-nodejs)

5.png

  • 勾選自動安裝
  • 選擇一個node版本即可

#4.github授權(quán)

  • 打開你的github服務(wù)器地址蛾洛,(setting-Developer settings-Personal access tokens-Generate new token ), 勾選repo admin:repo_hook兩項生成token并且復(fù)制備用
  • 打開jenkins(系統(tǒng)管理-系統(tǒng)設(shè)置-github), 添加github服務(wù)器,名稱隨便填,URL默認(rèn)。
    6.png

    這里要注意憑據(jù)的添加兵迅,點擊添加:
    7.png

    類型選擇secret textsecret字段填剛才github那里生成的token, 點添加(如果這里添加了但是并沒有在剛才憑據(jù)的下拉里看到的話候学,也就是沒添加成功掰茶,原因我不清楚盐碱,可以在jenkins根目錄菜單選擇憑據(jù)然后在右側(cè)按照上面的方法添加如果還不行就直接使用ip地址加端口訪問jenkins來添加這個憑據(jù)這個東西。)
  • 選擇剛才添加的憑據(jù),點連接測試是否成功:


    8.png
  • 設(shè)置githubHook地址,點擊下面的高級怕轿,會出現(xiàn)地址并復(fù)制:
    9.png
  • github上找到你的項目進(jìn)入詳情(setting - webhooks-add webhooks)
    10.png

    Payload URL填寫剛剛jenkins生成的hook地址即可为居。

#5. 新建一個jenkins任務(wù)job進(jìn)行部署配置

  • 新建任務(wù)


    11.png
  • 配置該Job任務(wù)
    (1)general: 填寫下圖幾項董朝,項目URL就是你要構(gòu)建的那個項目的github url地址;

    12.png

(2)源碼管理:

  • 選擇git
  • 填入項目地址
  • Credentials這里的憑據(jù)還是跟剛才那樣添加凫佛,如果不起效果那么選擇username with password類型添加削罩,就是你github的賬號和密碼
  • Branch specifier選擇你想要構(gòu)建的分支盗蟆,因為一個項目有很多分支徙硅,比如dev, test,prd等,直接寫*/你項目分支名
    13.png

(3) 構(gòu)建觸發(fā)器: 選擇GitHub hook trigger for GITScm polling即可

14.png

(4) 構(gòu)建環(huán)境: 選擇 Provide Node & npm bin/ folder to PATH, 在選一個你安裝好的Nodejs(前提你在之前通過jenkins全局設(shè)置安裝好了node)

15.png

(5) 構(gòu)建: 選擇添加構(gòu)建步驟陨享,執(zhí)行 shell

#!/bin/bash
echo '開始項目構(gòu)建命令'
echo $PATH
node -v
npm -v
echo '當(dāng)前分支'
git branch
echo '拉代碼'
git pull origin spa
echo '裝node_modules'
npm install 
echo '打包'
npm run build
echo '壓縮/dist'
tar -cvf dist.tar ./dist

(6) 構(gòu)建后操作:選擇 增加構(gòu)建后操作, send build artifacts over ssh 來把我們構(gòu)建好的代碼包推送到遠(yuǎn)程服務(wù)器上并解壓

17.png

  • name 填你想要填的
  • source files 想要操作的文件 這里的 dist.tar就是上面構(gòu)建后打包的壓縮文件
  • Remote directory推送到遠(yuǎn)程目錄蔬啡,因為我們在全局的jenkins配置上已經(jīng)配置過ssh server的基礎(chǔ)目錄是/目錄了,所以在這就填寫具體的你想要放置的目錄(建議這個目錄是nginx綁定的主頁目錄,這樣一推送nginx就會自動映射了)
  • Exec command 推送完畢后你想要執(zhí)行的命令

#6. 本地代碼推送部署

  • 本地相應(yīng)分支代碼推送到github入客,應(yīng)該就會部署構(gòu)建了膀钠,可以查看控制臺輸出日志
  • 我遇到了env: ‘node’: No such file or directory問題誉结,是因為jenkins容器并沒有成功安裝node或環(huán)境變量沒有node,無果google
    (1) docker exec -it jenkins sh進(jìn)入容器
    (2) apk add --no-cache nodejs 手動安裝node后成功
    18.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末券躁,一起剝皮案震驚了整個濱河市惩坑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌也拜,老刑警劉巖旭贬,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搪泳,居然都是意外死亡稀轨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門岸军,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奋刽,“玉大人瓦侮,你說我怎么就攤上這事∮缎常” “怎么了肚吏?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狭魂。 經(jīng)常有香客問我罚攀,道長,這世上最難降的妖魔是什么雌澄? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任斋泄,我火速辦了婚禮,結(jié)果婚禮上镐牺,老公的妹妹穿的比我還像新娘炫掐。我一直安慰自己,他們只是感情好睬涧,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布募胃。 她就那樣靜靜地躺著,像睡著了一般畦浓。 火紅的嫁衣襯著肌膚如雪痹束。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天讶请,我揣著相機(jī)與錄音祷嘶,去河邊找鬼。 笑死秽梅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的剿牺。 我是一名探鬼主播企垦,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晒来!你這毒婦竟也來了钞诡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤湃崩,失蹤者是張志新(化名)和其女友劉穎荧降,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體攒读,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡朵诫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了薄扁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剪返。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡废累,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脱盲,到底是詐尸還是另有隱情邑滨,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布钱反,位于F島的核電站掖看,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏面哥。R本人自食惡果不足惜哎壳,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望幢竹。 院中可真熱鬧耳峦,春花似錦、人聲如沸焕毫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邑飒。三九已至循签,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疙咸,已是汗流浹背县匠。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留撒轮,地道東北人乞旦。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像题山,于是被迫代替她去往敵國和親兰粉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

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