本文講述如何使用 Docker 簡單搭建 Jenkins 服務,並紀錄過程!

我們的環境是使用 Docker 來搭建,使用下面命令來下載 image 並跑起來服務!

Docker :

docker run --name jenkins -d -p 8080:8080 -p 50000:50000  -v ${HOME}/docker/jenkins:/var/jenkins_home jenkins/jenkins
參數說明:
--name => container 名子
-p => host端的port : container端的port
-v => host端資料夾位置 : container端內的資料夾位置
jenkins/jenkins  => container image 版本

服務啟動好之後我們需要了解一下 Docker 相關操作不然等等會卡關

docker 操作 command :
查看目前有在啟動的 container. => docker ps
查看全部 container. => docker ps -a
進container bash => docker exec -it <container_id or name> /bin/bash
進container root身分進 bash => docker exec -u 0 -it <container_id or name> /bin/bash

服務啟動好之後我們開啟網頁輸入 http://localhost:8080 就能看到 Jenkins 了! 先初始化我們的密碼 Jenkins_getting_started

利用上面剛剛說的 command 就能進到container 底下之後輸入下面的 command 就可以看到初始化密碼了

cat /var/jenkins_home/secrets/initialAdminPassword

之後我們就能安裝想安裝的 pluging , 並設置我們的帳號密碼


如果後來忘記密碼QQ

在使用 jenkins 的時候不小心把 admin 密碼忘記了,下面來修改找回 admin 密碼 Jenkins 專用的 user 資料存放在 JENKINS_HOME/users 目錄。每個user資料分別放在 users/xxx(各種用戶名) ,可以用 find 命令查找對應用戶的路徑:

# find / -name config.xml
/var/jenkins_home/jobs/peter_Test/config.xml
/var/jenkins_home/config.xml
/var/jenkins_home/users/admin_17608091780692632075/config.xml
/var/jenkins_home/users/ziyu_13869244322503421338/config.xml
/var/jenkins_home/users/frank_5101403968758794797/config.xml
/var/jenkins_home/users/alan_10846704603041450940/config.xml
/var/jenkins_home/users/peter_17697102942534321614/config.xml

打開忘記密碼的用戶文件夾,裏面有一個文件config.xml,在裏面找到 位置 把 位置的內容換成 #jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS 儲存,重新啓動 Jenkins container,然後輸入用戶名,密碼:111111 然後就OK了^^

Troubleshooting: 如果有遇到在 Jenkins 想查用網頁查看文件但沒辦法看的朋友可以用下面方法解決但只是暫時的每次 Jenkins 重啟都要重做一遍。如果想永久解決可以看下面文章內有解決辦法 Jenkins首頁 => Manage Jenkins => ScriptConsole 輸入

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","sandbox allow-scripts; default-src 'none'; img-src 'self' data: ; style-src 'self' 'unsafe-inline' data: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ;")

要按 2~3次 Run 才會有反應

Reference

软件测试|Docker 上搭建持续集成平台 Jenkins - 腾讯云开发者社区-腾讯云 (tencent.com)
Jenkins忘记密码解决方法 windows/Linux - 簡書 (jianshu.com)
jenkins初始密碼忘記了+修改密碼 - 台部落 (twblogs.net)

Troubleshooting: Configuring Content Security Policy - Jenkins
Jenkins error - Blocked script execution in . because the document’s frame is sandboxed and the ‘allow-scripts’ permission is not set
Where is jenkins.xml in jenkins docker container