[Maybe related to issues JENKINS-28821, JENKINS-33632 and JENKINS-36842]
Hello,
I am trying to stablish a new CI environment with jobs running on docker but I am running into permission issues. I tried to create a minimal reproducible scenario without slave machines.
Looking at some of the related issues, I wonder whether I was supposed to configure permissions or group membership for the jenkins user on the container (instead of just using the image as is), but I assume that is not the case.
Starting on a clean Centos 7 vm, I installed jenkins 2.7.1 and docker, and then added the jenkins user to the docker group (ansible playbook follows). Then I only installed "Pipeline" and "CloudBees Docker Pipeline" plugins and its dependencies. Everything is updated as of today. Then I created a single pipeline job:
node {
docker.image('centos:7').inside {
sh 'pwd'
}
}
This job fails with permission issues:
Started by user admin
[Pipeline] node
Running on master in /var/lib/jenkins/workspace/container-test
[Pipeline] {
[Pipeline] sh
[container-test] Running shell script
+ docker inspect -f . centos:7
.
[Pipeline] withDockerContainer
$ docker run -t -d -u 992:989 -w /var/lib/jenkins/workspace/container-test -v /var/lib/jenkins/workspace/container-test:/var/lib/jenkins/workspace/container-test:rw -v /var/lib/jenkins/workspace/container-test@tmp:/var/lib/jenkins/workspace/container-test@tmp:rw -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** centos:7 cat
[Pipeline] {
[container-test] Running shell script
[Pipeline] sh
sh: /var/lib/jenkins/workspace/container-test@tmp/durable-890dccc6/pid: Permission denied
sh: /var/lib/jenkins/workspace/container-test@tmp/durable-890dccc6/jenkins-log.txt: Permission denied
sh: /var/lib/jenkins/workspace/container-test@tmp/durable-890dccc6/jenkins-result.txt: Permission denied
[Pipeline] }
$ docker stop c71c65555ff53a1bd87db33a9d240c6eb4ae14d9c61a0a0a348c7f72f82b7a50
$ docker rm -f c71c65555ff53a1bd87db33a9d240c6eb4ae14d9c61a0a0a348c7f72f82b7a50
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code -2
Finished: FAILURE
Tools were installed using the following ansible recipe:
---
- hosts: jenkins-minimal
tasks:
- yum: name={{ item }} state=installed
with_items:
- libselinux-python
- dejavu-sans-fonts
- fontconfig
- java-1.8.0-openjdk-headless
- docker
- yum_repository:
name: jenkins
description: 'Jenkins-stable'
baseurl: http://pkg.jenkins.io/redhat-stable
gpgkey: http://pkg.jenkins.io/redhat-stable/jenkins.io.key
- yum: name=jenkins state=installed
- group: name=docker
- user: name=jenkins groups=docker
- firewalld: port=8080/tcp state=enabled permanent=true immediate=yes
- service: name={{ item }} state=started enabled=yes
with_items:
- jenkins
- docker