共计 1128 个字符,预计需要花费 3 分钟才能阅读完成。
之前曾經碰到架設 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 如何運作,如附圖
文檔中提到
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
在執行容器期間使用 jenkins 使用者其 uid & gid 皆為 1000,這時切換到群暉中查看當前目錄結構如附圖
我透過介面新增的文件夾所屬人為我自己帳號,而 docker 執行 jenkins 容器後的權限並沒有訪問該文件夾的權限
解決方法
方法 1: 透過命令列創建容器
引用 不正经的正经程序猿
- 打开群晖系统的 SSH 登录功能:
Control Panel
->Terminal & SNMP
->Enable SSH Service
- SSH 登录后执行
cat /etc/passwd
,找到当前用户的 UID - 执行如下命令启动 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 就可以正常运行了~ - 返回群晖的图形化 Docker 界面重启该实例
方法 2: 修改文件夾屬性
我自己是直接修改文件夾屬性,接著執行就正常了。