# 透過 Docker 建立 Jenkins ###### tags: `Jenkins` `Docker` `CI/CD` ## 介紹 [Jenkins](https://www.jenkins.io/zh/)提供建置、部屬及自動化等操作,算是可以滿足各種不同的需求,也是一個非常老牌的CI/CD工具。 ## 目錄 [TOC] # 一、前言 在專案上在很多平台上使用CI/CD的操作,但唯獨沒有機會接觸到Jenkins,最近剛好比較有空花一點時間來了解一下,希望以後可以變成自己的使用工具。 # 二、使用Docker 建立 安裝Jenkins的方式有很多種,此處我們會直接使用Docker來建立運行,畢竟使用上方便又快速,接著直接跟著步驟進行囉! ## DockerCompose 建立 這邊直接透過腳本來講解,其內容如下: ```yaml= version: '3.7' services: mongo: container_name: Jenkins image: jenkins/jenkins:lts volumes: - D:\Frank\MyDevDockerImage\Jenkins\jenkins-data:/var/jenkins_home - //var/run/docker.sock:/var/run/docker.sock ports: - "8080:8080" - "50000:50000" ``` ### image 我們直接使用`jenkins/jenkins:lts`長期維護版本 :::info :bulb: 這邊小小採了坑,之前使用官網中文範例中的`jenkinsci/blueocean`的image版本,但在之後安裝完`nodejs`執行`npm`的命令時,發生了找不到指令的錯誤,儘管有在網路上找到解決方案,不過這邊只想要專注在Jenkins上面。 ::: ### volumes 這邊對應了兩個路徑出來 * /var/jenkins_home:主要為Jenkins相關設定檔 * /var/run/docker.sock:將Docker操作對應進去容器 ### ports 所指定的預設port為8080,直接對應出來即可 :::info :bulb: 50000為agnet所使用的預設port ::: ## 執行腳本 這邊直接到該檔案位子下直接執行即可 ```shell= docker-compose up -d ``` 執行結束後會出現以下結果,此處為第一次登入所需要的管理員密碼  # 三、使用Jenkins 我們直接連接`localhost:8080`即可進行登入或相關操作 ## 第一次登入 ### 登入 第一次連接時畫面會是如下:  此處需要輸入當初在docker logs上面顯示的管理員密碼即可 ### 套件安裝 登入後則會需要安裝外掛,這邊依據個人需求自行選擇,我這邊則是選擇**安裝推薦的外掛**。  接著就會進行安裝囉  ### 建立管理者 套件安裝完成後接著會是建立管理員,此步驟為可略過的步驟,不過這邊建議還是建立一組來使用,畫面如下:  :::info :bulb: 如果沒有設定則,後續會告知admin帳號 ::: ### 執行個體 執行個體這部分直接使用預設的即可,點選儲存並完成  ### 最後步驟 執行個體儲存後再實作上有出現兩種(不同的image)情況,一種會需要重新啟動,另一種則直接進入操作畫面,這邊依據畫面顯示操作即可。 :::info :bulb: 因為我們是用docker執行的,如果是重新啟動Jenkins關閉之後需要手動執行喔!! ::: ## 設定後登入 第一次登入設定完成後(重新啟動之後),再連接到Jenkins頁面則會顯示登入畫面(如下),這邊只需要輸入當初建立的使用者  輸入完成後看到以下畫面,恭喜!這樣就完成了唷!  # 結論 這篇基本上算是單純的筆記而已,因為整體透過Docker來進行是很容易也很簡便的,但是其運行架構官網建議要透過JenkinsAgent來運行相關做作,這邊附上延伸閱讀的資源有興趣的可以事先閱讀。 延伸閱讀: [使用 Docker 安裝 Jenkins Agent](https://ithelp.ithome.com.tw/articles/10200805) [Day 23: Jenkins與分散式部屬](https://ithelp.ithome.com.tw/articles/10271997) <br/> --- <style> .red{color: red;} </style>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up