使用具有marathon和mesos的持久卷在docker中运行jenkins的权限错误

时间:2016-04-04 12:46:34

标签: jenkins docker mesos marathon

我试图让jenkins在使用马拉松和mesos在docker中运行来为jenkins docker图像午餐。

我使用了创建应用程序按钮,它生成了以下json

{
  "type": "DOCKER",
  "volumes": [
    {
      "containerPath": "/var/jenkins_home",
      "hostPath": "jenkins_home",
      "mode": "RW"
    },
    {
      "containerPath": "jenkins_home",
      "mode": "RW",
      "persistent": {
        "size": 200
      }
    }
  ],
  "docker": {
    "image": "jenkins",
    "network": "HOST",
    "privileged": false,
    "parameters": [],
    "forcePullImage": false
    }
}

标准显示

--container="mesos-c8bd5b26-6e71-4e18-b490-821dbf7edd9d-S0.ac0b4dbb-10e4-4684-a4df-9539258d77ee" --docker="docker" --docker_socket="/var/run/docker.sock" --help="false" --initialize_driver_logging="true" --launcher_dir="/home/ajazam/mesos-0.28.0/build/src" --logbufsecs="0" --logging_level="INFO" --mapped_directory="/mnt/mesos/sandbox" --quiet="false" --sandbox_directory="/var/lib/mesos/data/slaves/c8bd5b26-6e71-4e18-b490-821dbf7edd9d-S0/frameworks/6079a596-90a8-4fa5-9c92-9215558737d1-0000/executors/jenkins-t7.9be44260-f99c-11e5-b0ac-e4115bb26fcc/runs/ac0b4dbb-10e4-4684-a4df-9539258d77ee" --stop_timeout="0ns"
Registered docker executor on slave4
Starting task jenkins-t7.9be44260-f99c-11e5-b0ac-e4115bb26fcc
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

stderr显示

I0403 14:04:51.026866  6569 exec.cpp:143] Version: 0.28.0
I0403 14:04:51.032097  6585 exec.cpp:217] Executor registered on slave c8bd5b26-6e71-4e18-b490-821dbf7edd9d-S0
WARNING: Your kernel does not support swap limit capabilities, memory limited without swap.
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied

我正在使用

marathon 1.0.0 RC1 mesos 0.28.0

docker 1.10.3

操作系统是ubuntu 14.04.4 LTS

有没有人指出我哪里出错了?我的感觉是这个问题与持久性卷以及它到jenkins容器中的映射有关。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。 git clone https://github.com/jenkinsci/docker.git到您的代理节点上。我已经在我的所有人身上完成了

在Dockerfile中的第16行和第17行插入#,例如

#    RUN groupadd -g ${gid} ${group} \
#        && useradd -d "$JENKINS_HOME" -u ${uid} -g ${gid} -m -s /bin/bash ${user}

运行sudo docker build . 使用sudo docker tag xyz jenkins将repo重命名为jenkins,然后使用docker,jenkins和persistent volume创建一个应用程序。