我是 docker 新手,所以如果这是我缺少的一个相当明显的过程,我为前面的愚蠢问题道歉。
我正在使用jenkins
docker 映像设置一个持续集成服务器。我做了一个docker pull jenkins
, 并创建了一个用户jenkins
,允许我将/var/jenkins_home
容器中的 安装到我的主机/var/jenkins_home
(也归jenkins:jenkins
用户所有)。
问题是容器似乎jenkins
使用 uid 102 定义用户,但我的主机将jenkins
用户设置为 1002,所以当我运行它时,我得到:
docker run --name jenkins -u jenkins -p 8080 -v /var/jenkins_home:/var/jenkins_home jenkins
/usr/local/bin/jenkins.sh: line 25: /var/jenkins_home/copy_reference_file.log: Permission denied
我只需将主机jenkins
用户的 uid 设为 102 in /etc/passwd
,但该 uid 已被 sshd 占用。我认为解决方案是将容器更改为使用 uid 1002,但我不确定如何。
编辑
实际上,主机上的用户 102 是消息总线,而不是 sshd。