群暉 Docker 執行 Jenkins

2,041次閱讀
尚無留言

共计 1128 个字符,预计需要花费 3 分钟才能阅读完成。

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

前言

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

群暉 Docker 執行 Jenkins

問題

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

群暉 Docker 執行 Jenkins

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

群暉 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 如何運作,如附圖

群暉 Docker 執行 Jenkins

文檔中提到

ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000

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

群暉 Docker 執行 Jenkins

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

解決方法

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

引用 不正经的正经程序猿

  1. 打开群晖系统的 SSH 登录功能:Control Panel -> Terminal & SNMP -> Enable SSH Service
  2. SSH 登录后执行 cat /etc/passwd,找到当前用户的 UID群暉 Docker 執行 Jenkins
  3. 执行如下命令启动 Docker 实例
    sudo docker run -u 1027 \ # 指定运行的用户
    -p 8080:8080 -p 50000:50000 \ # 端口映射
    -v /volume4/DockerExt/JenkinsHome/:/var/jenkins_home \ # 文件目录映射
    jenkins/jenkins:alpine # 待启动镜像 

    因为我们指定在 Docker 中使用 UID=1027 这个用户执行,而这个用户对于 /volume4/DockerExt/JenkinsHome/ 这个目录是权限的,所以 Jenkins 就可以正常运行了~

  4. 返回群晖的图形化 Docker 界面重启该实例

方法 2: 修改文件夾屬性

群暉 Docker 執行 Jenkins

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

正文完
 0
評論(尚無留言)