启动容器詹金斯后,权限被拒绝

时间:2019-09-05 18:27:00

标签: docker jenkins docker-compose

创建詹金斯容器时,出现以下错误。可能是什么问题?

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

这是我的docker-compose:

version: '3.7'

services:

jenkins:
    image: jenkins/jenkins:lts
    ports:
      - 7080:8080
      - 50000:50000
    privileged: true
    volumes:
      - /tmp/jenkins-test:/var/jenkins_home

2 个答案:

答案 0 :(得分:2)

这在issue中有解释。

sudo chown 1000 /tmp/jenkins-test

如果目录已包含文件:

sudo chown -R 1000 volume_dir
  

这会将jenkins数据存储在主机上的/ your / home中。确保   jenkins用户可以在容器中访问/ your / home   (jenkins用户-uid 1000)或将-u some_other_user参数与   泊坞窗运行。

     

在挂载之前,必须在主机中设置正确的权限   卷sudo chown 1000 volume_dir

或者您可以尝试

已解决,但涉及酷刑。

在主机上创建一个jenkins用户,请注意它是uid

docker run -u <jenkins-uid> ...

  

请勿docker run -u 'jenkins' -导致容器自身的   jenkins用户继续使用。在上选择其他名称   主机并通过或通过结果uid。

您可以尝试运行的bash脚本

#!/bin/bash
mkdir $PWD/jenkins

sudo chown -R 1000:1000 $PWD/jenkins

docker run -d -p 8080:8080 -p 50000:50000 -v $PWD/jenkins:/var/jenkins_home --name jenkins jenkins

答案 1 :(得分:0)

如果在获得所有许可后一切仍然正常,如果一切仍然不起作用,则只需更改卷映射即可。

./your_folder:/var/jenkins_home 

它会很好地工作。.pwd有时会导致创建问题。