群暉 Docker 執行 Jenkins

4年前 (2019-12-24) Yosheng 資訊教學 0評論 已收錄 1716℃

之前曾經碰到架設 Minecraft image 佈署後,儲存空間連結出錯,解決後就沒再去管它,今天又遇到同樣的問題,順帶記錄這個坑。

前言

安裝選擇鏡像必須使用 jenkins/jenkins 鏡像才是新板否則會因為版本老舊導致安裝插件報錯,版本選LTS長期支援板,如附圖


問題

如附圖,打開儲存空間連配置,我配置到自己新增的 docker 文件夾底下 jenkins


啟動後馬上關閉,查看日誌如附圖


錯誤訊息如下

touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

從官方文檔查看原生 Dockerfile 如何運作,如附圖


文檔中提到

在執行容器期間使用 jenkins 使用者其 uid & gid 皆為1000,這時切換到群暉中查看當前目錄結構如附圖


我透過介面新增的文件夾所屬人為我自己帳號,而 docker 執行 jenkins 容器後的權限並沒有訪問該文件夾的權限

解決方法

方法1: 透過命令列創建容器

引用 不正经的正经程序猿

  1. 打开群晖系统的 SSH 登录功能:Control Panel -> Terminal & SNMP -> Enable SSH Service
  2. SSH 登录后执行 cat /etc/passwd,找到当前用户的 UID-w562
  3. 执行如下命令启动 Docker 实例

    因为我们指定在 Docker 中使用 UID=1027 这个用户执行,而这个用户对于 /volume4/DockerExt/JenkinsHome/ 这个目录是权限的,所以 Jenkins 就可以正常运行了~
  4. 返回群晖的图形化 Docker 界面重启该实例

方法2: 修改文件夾屬性


我自己是直接修改文件夾屬性,接著執行就正常了。

博主

擅長使用 C# 和 Java 開發項目,全棧開發工程師,前端主要使用 Vue 其次 Angular ,目前正在學習分布式架構,運維研發兼具,平時愛好鑽研技術並應用於實務當中,常駐於上海。

相關推薦

相逢就是有緣,留下足跡吧!