docker從零搭建jenkins服務器

前言

寫這篇文章的靈感來源於最近公司的 jenkins 部署總是失敗,各類緣由。在項目很是趕的狀況下,我天天還要抽半天時間去排查 jenkins 上的問題。因此決定在咱們前端服務器上搭建個 jenkins 給測試部署。並部署到前端服務器上。文章是邊操做邊寫出來的,踩遍了坑。不知道你們會不會也遇到這些問題。反正我都把解決步驟寫在裏面了。html

本文主要內容是介紹 jenkins 的搭建與使用。至因而安裝在服務器上仍是本文經過 docker 安裝 jenkins 不是很重要,默認讀者會使用 docker。若是不是很瞭解docker可看個人docker 從入門到實戰博客,本文章同步發表於個人博客前端

安裝 jenkins

docker pull docker.io/jenkins/jenkins:latestvue

安裝成功後使用docker images查看鏡像git

github docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins/jenkins     latest              59f8784e08ee        2 days ago          619MB

在啓動 Jenkins 前,須要先建立一個 Jenkins 的配置目錄,而且掛載到 docker 裏的 Jenkins 目錄下github

新建一個文件夾如個人/Users/zhouatie/Desktop/github/front-end/practise-jenkinsweb

並給該文件夾受權sudo chown -R 1000 /Users/zhouatie/Desktop/github/front-end/practise-jenkinsdocker

這裏有個很神奇的點就是網上都說要受權,因此我受權了,可是仍是提示 Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions。後來我新建了個文件夾不作受權處理就能夠了。可查閱 stackoverflow 這裏面一位朋友就是遇到相同的問題 受權了也沒用。

執行如下命令構建容器shell

docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins  -v /Users/zhouatie/Desktop/github/front-end/practise-jenkins:/var/jenkins_home docker.io/jenkins/jenkins:latest

執行docker ps查看後臺啓動的容器狀況json

➜  front-end git:(master) ✗ docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                              NAMES
3385ad0e42fe        jenkins/jenkins:latest   "/sbin/tini -- /usr/…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins

能夠看到 jenkins 容器已經啓動成功了。這個時候訪問下頁面吧。瀏覽器輸入 localhost:8080瀏覽器

能夠看到以下界面

圖片

這個時候咱們就能夠到剛纔管理數據卷的文件夾裏找了(我本地是/Users/zhouatie/Desktop/github/front-end/practise-jenkins/secrets/initialAdminPassword),cat下這個文件能夠看到輸出28023d3751214bd6aadc0dd83c168325,把這個密碼複製到管理員密碼輸入框中並點擊繼續。

loading 轉了半天,有種不詳的預感。結果不出意外顯示 jenkins 離線。因此我又開始上網搜新版本 jenkins 安裝時顯示離線問題

解決步驟

  1. 瀏覽器輸入http://localhost:8080/pluginManager/advanced

    劃到最下面能夠看到

    G8zfbR.md.jpg

  2. 將截圖中的地址替換爲http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json這個代理服務器

再刷新下http://localhost:8080頁面以下

G8zvVI.jpg

  1. 點擊安裝推薦的插件

    結果不出意外以下圖

    GGpocD.jpg

    而後我又開始google了。找到了這個安裝 jenkins 時出現 No such plugin: cloudbees-folder 的解決辦法

    結果按照前幾個步驟失敗,做者建議重啓,好吧,重啓就重啓,執行下 docker restart jenkins

    終於又成功進入下載頁了。

    安裝真的超級慢,心急如焚,不知道是否是 docker 的緣由。由於文章是直接邊操做邊寫的。在想要不要直接跨過這個安裝界面,直接打開本身跑在前端服務器上的 jenkins 了開始介紹了

GGpdkq.jpg

還沒等他提示徹底失敗,這個時候我就又開始google了。實在沒轍了,這的太難了。因此我重啓了個jenkins容器後,選擇自選插件。而後什麼也不選,進了頁面後,能夠在以下截圖地方下載,我是將上面推薦的所有勾選後進行下載,結果還很快。

GGCv6S.jpg

  1. 安裝完插件後重啓下,能夠看到界面以下

    GGPpwj.jpg

構建

  1. 點擊右上角的新建任務

圖片

  1. 選擇第一個自由風格模式

tupian

  1. 確點後進入以下頁面,並點擊配置

圖片

  1. 由於部分插件裝失敗了,我就以在裝成功的 jenkins 配置界面截圖爲例

t

  • 參數化構建:這裏主要提下參數化構建,這裏對應的值均可以在下面【構建】執行 shell 中獲取到部署的時候用戶手動選擇或者填入的參數。
  • 源碼管理:主要是讓 jenkins 從你的 git 倉庫中拉代碼,credentials須要選擇有該倉庫權限的帳號,能夠手動試下
  • 構建觸發器:意思就是觸發條件,好比git上的webhook,就能夠觸發jenkins部署。具體可查閱google
  • 構建:這個是重點,這裏能夠執行你的腳本,好比你是一個 vue 項目,能夠根據上面配置的參數化配置,獲取是否須要安裝依賴等。可看我圖中shell腳本,很是好理解。
相關文章
相關標籤/搜索