群暉 Docker 執行 Jenkins

2,277次閱讀
尚無留言

共计 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
評論(尚無留言)

夜升筆談

夜升筆談
夜升筆談
視寫代碼為信仰,奉高效能為執著,成為大牛不是一蹴可幾,但只要秉持信念終究能成,我依舊在這條路上不斷前進。
最新评论
Yosheng Yosheng 我是买梯子了 只是理解一下原理而已
虚拟信用卡 虚拟信用卡 还是直接买梯子吧,太浪费时间了
spring spring 学习了
cskepper cskepper 非常有用,已经顺利解决
cskepper cskepper 非常有用,已经顺利解决
Yosheng Yosheng 這可能是代理服務器的問題了...
淑淑 淑淑 我在大陸使用了VPN 照著你說的操作 但是出現無法透過代理伺服器連線 我的電腦是W7 也下載了兼容版 用了大概一個星期後今天LINE就無法使用VPN了 這種要怎樣解決
Yosheng Yosheng 如果不能直接撥放建議直接下載回來播放,後面我就沒去折騰為什麼不能線上播放了
SADFISH SADFISH 我无法播放语音是为什么呀楼主
Yosheng Yosheng 微信号 yosheng0323