一、背景
docker安裝jenkins,可能你會(huì)反問,這太簡(jiǎn)單了,有什么好講的。
我最近就接手了一個(gè)打包項(xiàng)目,它是一個(gè)nodejs的前端項(xiàng)目,jenkins已在容器里部署且運(yùn)行OK。
但是,前端組很追求新技術(shù),不斷地升級(jí)Nodejs的版本,之前是14,現(xiàn)在需要升級(jí)到16。
也就是說,原本運(yùn)行順暢的打包不靈了,必須得升級(jí)Nodejs才行。
我要看下文檔,得知道jenkins容器的運(yùn)行命令,才好去修改并重啟容器。
這是我的第一反應(yīng),可也正是這個(gè)思維,導(dǎo)致走了不少?gòu)澛贰?/p>
二、踩過的坑
1、文檔少,交接中斷許久
文檔只有機(jī)器的密碼,以及jenkins的admin超管賬戶的密碼。
并沒有交待Jenkins容器是怎么起來(lái)的,而所謂交接也中斷不知多久,沒人知道此時(shí)。。
2、思維定勢(shì)
我的這個(gè)固定思維,導(dǎo)致我走了不少?gòu)澛贰R舱驗(yàn)榇?,我才想把這期間遇到的問題,梳理出來(lái),希望能夠幫助到有需要的同學(xué)。
三、分析已部署的容器
主要需要知道以下信息,對(duì)于Jenkins容器來(lái)說:
- 鏡像image
- volume
- 端口映射
- 環(huán)境變量
對(duì)于本文的情況來(lái)說,鏡像image和端口映射是很容易看到,最重要的信息莫過于volume持久化。
當(dāng)然你可以借助于docker inscept命令,我這里是使用portainer界面查看。
從下面詳情,也可以看到鏡像image名稱,使用的就是官方鏡像。
從下面的環(huán)境變量,可以看到,jenkins使用的版本是2.323。在制作自定義鏡像的時(shí)候,這個(gè)信息可以幫助到我們?cè)撨x擇哪個(gè)版本。
四、容器化部署
從上文,我們不難倒退出目前在運(yùn)行中的容器,運(yùn)行腳本大致是:
docker run -d -uroot \
-p 8080:8080 \
-p 50000:50000 \
--name jenkins \
-v /opt/jenkins_home:/var/jenkins_home \
jenkins/jenkins:2.323
可是問題來(lái)了,jenkins job打包需要的那些命令和工具呢, 他們?cè)谀模?/p>
也分為幾種可能,但都沒找到。
- jenkins plugin插件
- 系統(tǒng)管理–》全局工具設(shè)置
- 宿主機(jī)和容器做持久化映射
- 容器里安裝(遺漏了這點(diǎn),后果很嚴(yán)重)
前面三處都找了,也沒找到,可偏偏遺漏了最后一處。。。因?yàn)檫@種方式,我自己在操作中比較忌諱。
容器一定被刪除后,安裝的命令和工具就都丟失了,并且對(duì)于運(yùn)維來(lái)說,也是透明的。
就是說,別人并不知道你對(duì)容器具體有做什么改進(jìn),一頭霧水。
1、安裝方式一(不推薦)
我試著做了,但總會(huì)缺這缺那的,很難真正跑起來(lái)。
因?yàn)樗拗鳈C(jī)是centos,而jenkins容器是ubuntu操作系統(tǒng)。
想要在ubuntu系統(tǒng)里,去執(zhí)行一個(gè)centos上的可執(zhí)行文件,何其難也~~
因?yàn)榭蓤?zhí)行文件還依賴操作系統(tǒng)底層的函數(shù)及文件。
可以說,不僅不推薦,似乎本文也行不通。。
2、遺漏的方案(不科學(xué),不推薦)
這種方式,就是拿容器當(dāng)虛擬機(jī)使用,丟失了容器化的內(nèi)涵和意義。
缺什么軟件,你就去容器里安裝,問題是簡(jiǎn)單地解決了,留給運(yùn)維一堆坑。
后面接手的人不禁反問一句:如果虛擬機(jī)那么好使, 還容器化干嘛。繞來(lái)繞去,不知不覺中又繞回去了。
3、推薦的方案(也是下文要進(jìn)一步描述的方案)
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-807255.html
限于篇幅, 對(duì)jenkins的容器化部署就說到這, 見下文。。。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-807255.html
到了這里,關(guān)于nodejs前端項(xiàng)目的CI/CD實(shí)現(xiàn)(二)jenkins的容器化部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!