docker部署jenkins

1. 簡介

在軟件開發(fā)過程中經常會提到CI/CD的概念,CI(Continuous Integration)持續(xù)集成盅弛,開發(fā)人員每天通過git等向倉庫提交代碼更新,代碼提交后實現(xiàn)自動化構建叔锐,測試挪鹏,部署,方便開發(fā)人員盡早發(fā)現(xiàn)和解決問題愉烙。
jenkins是一款開源持續(xù)集成軟件工具讨盒,常用于代碼自動構建,測試齿梁,部署催植。

2. 安裝

在docker中部署jenkins,安裝docker勺择,平臺為ubuntu20.04 server版创南。

  1. 安裝docker
sudo apt install docker.io  // 安裝docker
sudo usermod -a $(whoami) -G docker    // 把當前用戶添加到docker用戶組,否則非root用戶沒有權限使用docker命令
  1. pull jenkins鏡像
docker search jenkins    // 查找jenkins鏡像
docker pull jenkins/jenkins  // pull jenkins最新鏡像省核,注意jenkins鏡像已經過時了稿辙,不要pull錯了
  1. 啟動jenkins容器
sudo mkdir /var/jenkins_home/
sudo chmod 777  /var/jenkins_home/
docker run -u root -it --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -d jenkins/jenkins

-v把宿主機的/var/jenkins_home目錄掛載到容器的/var/jenkins_home,該目錄是jenkins的工作目錄气忠,主要方便在本地查看容器的文件邻储。

  1. 查看容器
docker ps -a  // 查看jenkins容器
docker inspect jenkins   // 查看jenkins容器的完整信息,可通過容器ID或容器名字查看,這里通過名字

3. 訪問jenkins

在瀏覽器中輸入:http://serverip:8080/訪問jenkins旧噪,serverip為docker宿主機的ip吨娜,我這里是在騰訊云服務器上搭建的環(huán)境,所以serverip即為云服務器ip淘钟,頁面如下:

jenkins起始頁面

jenkins默認創(chuàng)建admin用戶宦赠,初始密碼通過jenkins容器log中查看,或者直接查看問題:/var/jenkins_home/secrets/initialAdminPassword

docker logs jenkins

jenkins初始密碼

接下來一步步進去安裝推薦的插件米母,創(chuàng)建第一個管理員用戶勾扭,進入主頁面:
jenkins主頁面

在插件管理中安裝Manage Jenkins-> Manage Plugin中安裝:Locale,Localization: Chinese (Simplified)
配置為中文:Manage Jenkins-> Configure System中Locale配置成: zh_CN,通過如下方式重啟jenkins:
http://serverip:8080/restart

4. 新建任務

新建任務.png

上面有6個菜單選項铁瞒,接下來分別配置源碼路徑(github妙色,gitlab,svn等)慧耍,觸發(fā)條件(定時觸發(fā)身辨,代碼提交觸發(fā)丐谋,循環(huán)觸發(fā)等),


image.png

image.png

image.png

image.png

image.png

image.png

注意以下幾點:

  1. 默認用戶名為容器啟動的用戶名栅表,我這里用root啟動笋鄙,所以默認為root
  2. github主分支不從master換成main分支
  3. 項目URL從https協(xié)議換成git協(xié)議路徑,最后如果jenkins能訪問項目路徑的話就不會有紅色報錯了
設置構建條件

設置github hook觸發(fā)構建怪瓶,構建方式為執(zhí)行shell命令: go build .

5. 配置github觸發(fā)構建

  1. jenkins需要訪問github上的倉庫萧落,首先github上生成token給jenkins
    登錄github賬戶,在Settings-> Developer settings ->Personal access tokens->Generate new token


    image.png

    把生成的token保存起來洗贰,后續(xù)需要把token設置到jenkins中找岖。

  2. jenkins配置github server
    在Manage Jenkins-> Configure System中配置github server
    image.png

    image.png

    把生成的token貼到Secret輸入框中,jenkins默認的github hook URL為:http://serverip:8080/github-webhook/敛滋,serverip是jenkins宿主機ip许布,這里我們不改動它,github上有commit提供時就通過對該URL發(fā)post請求通知jenkins觸發(fā)構建绎晃。
  3. github配置hook
    image.png

    在倉庫Settins->webhook中設置jenkins的webhook URL蜜唾,這里填寫:http://serverip:8080/github-webhook/
    Secret輸入賬戶密碼,到這里一切都設置完成了庶艾。github倉庫上有代碼提交->通過webhook通知jenkins->jenkins攜帶token訪問github倉庫->pull代碼->構建

6. 測試

上傳代碼袁余,查看是否能觸發(fā)自動構建:


image.png

可以看到立馬觸發(fā)了一次構建,有幾個小問題需要注意:

  1. 容器中需要有go環(huán)境咱揍,可以把go解壓到/var/jenkins_home目錄下去颖榜,并jenkins中設置go路徑加到環(huán)境變量
  2. 或者以root用戶啟動容器,進入容器的交互終端通過apt安裝go環(huán)境煤裙,建議第一種掩完,最好不要用root用戶啟動容器
  3. 構建命令可以做成一個腳本,做到同時構建和部署硼砰,這里只是簡單go build下項目
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末且蓬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子题翰,更是在濱河造成了極大的恐慌恶阴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遍愿,死亡現(xiàn)場離奇詭異存淫,居然都是意外死亡耘斩,警方通過查閱死者的電腦和手機沼填,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來括授,“玉大人坞笙,你說我怎么就攤上這事岩饼。” “怎么了薛夜?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵籍茧,是天一觀的道長。 經常有香客問我梯澜,道長寞冯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任晚伙,我火速辦了婚禮吮龄,結果婚禮上,老公的妹妹穿的比我還像新娘咆疗。我一直安慰自己漓帚,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布午磁。 她就那樣靜靜地躺著尝抖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迅皇。 梳的紋絲不亂的頭發(fā)上昧辽,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音喧半,去河邊找鬼奴迅。 笑死,一個胖子當著我的面吹牛挺据,可吹牛的內容都是我干的取具。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼扁耐,長吁一口氣:“原來是場噩夢啊……” “哼暇检!你這毒婦竟也來了?” 一聲冷哼從身側響起婉称,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤块仆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后王暗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悔据,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年俗壹,在試婚紗的時候發(fā)現(xiàn)自己被綠了科汗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡绷雏,死狀恐怖头滔,靈堂內的尸體忽然破棺而出怖亭,到底是詐尸還是另有隱情,我是刑警寧澤坤检,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布兴猩,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜拌喉,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一哮兰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逝段。三九已至垛玻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奶躯,已是汗流浹背帚桩。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嘹黔,地道東北人账嚎。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像儡蔓,于是被迫代替她去往敵國和親郭蕉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容