2016-04-04 10 views
2

Ich versuche, jenkins zu erhalten, die innen docker laufen, marathon und mesos verwendend, um ein jenkins docker image zu essen.Erlaubnisfehler, die jenkins innerhalb des docker laufen lassen, das hartnäckige Volumen mit Marathon und mesos verwendet

ich die Anwendung Schaltfläche erstellen verwendet, die die folgende json

ma

{ 
    "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 
    } 
} 

stdout zeigt

--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 zeigt

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 

Ich verwende produziert rathon 1.0.0 RC1 Mesos 0.28.0

Docker 1.10.3

OS ist ubuntu 14.04.4 LTS

Hat jemand irgendwelche Verweise, wo ich falsch gehe? Mein Gefühl ist, dass das Problem mit dem anhaltenden Volumen und dem Mapping davon in den Jenkins Container zu tun hat.

+0

Welche Berechtigungen haben der Ordner '/ var/jenkins_home' des Agenten? – Tobi

+0

Ich habe gerade einen Fehler in host_path korrigiert. Es war jenkins_path, sollte aber jenkins_home gesagt haben. Ich habe die Korrektur vorgenommen. Die beiden Containerpfadreferenzen stimmen jedoch nicht überein. Ich werde diese ändern, wenn ich nach Hause komme, damit sie zusammenpassen. –

+0

Ich denke, das Problem ist https://github.com/jenkinsci/docker/issues/177 –

Antwort

0

Ich habe es funktioniert. Git Klon https://github.com/jenkinsci/docker.git auf Ihre Agent-Knoten. Ich habe es getan auf meinem ganzen

Einsatz # vor den Linien 16 und 17 in Dockerfile zB

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

Lauf sudo docker build . Verwendung sudo docker tag xyz jenkins die Repo jenkins umbenennen und dann eine Anwendung mit Docker erstellen, Jenkins und persistente Volumen.

+0

Könnten Sie bitte mit den neuesten JSON helfen Sie verwendet? –

+0

Das entfernt nur den Benutzer im Container, und das Image-Build schlägt fehl – csanchez

+0

Ich bin mir nicht sicher, was Sie meinen, indem Sie scheitern. Das Bild hat gebaut und es funktioniert. Mir ist klar, dass Jenkins als root läuft und die obigen Aussagen auskommentiert sind. Das persistente Volume hat standardmäßig root-Berechtigungen, so dass ein anderer Benutzer im jenkins-Container nicht funktionieren würde. @pravin einen Blick auf Marathon Google Group –