Starting Jenkins in Docker Container

a 夏天 提交于 2019-12-04 21:50:37

问题


I want to run Jenkins in a Docker Container on Centos7. I saw the official documentation of Jenkins: First, pull the official jenkins image from Docker repository.

docker pull jenkins

Next, run a container using this image and map data directory from the container to the host; e.g in the example below /var/jenkins_home from the container is mapped to jenkins/ directory from the current path on the host. Jenkins 8080 port is also exposed to the host as 49001.

docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins

But when I try to run the docker container I get the following error:

/usr/local/bin/jenkins.sh: line 25: /var/jenkins_home/copy_reference_file.log: Permission denied

Can someone tell me how to fix this problem?


回答1:


The official Jenkins Docker image documentation says regarding volumes:

docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins

This will store the jenkins data in /your/home on the host. Ensure that /your/home is accessible by the jenkins user in container (jenkins user - uid 1000) or use -u some_other_user parameter with docker run.

This information is also found in the Dockerfile. So all you need to do is to ensure that the directory $PWD/jenkins is own by UID 1000:

mkdir jenkins
chown 1000 jenkins
docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins



回答2:


The newest Jenkins documentation says to use Docker 'volumes'. Docker is kinda tricky on this, the difference between the two is a full path name with the -v option for bind mount and just a name for volumes.

docker run -d -p 49001:8080 -v jenkins-data:/var/jenkins_home -t jenkins

This command will create a docker volume named "jenkins-data" and you will no longer see the error.

Link to manage volumes: https://docs.docker.com/storage/volumes/



来源:https://stackoverflow.com/questions/34706077/starting-jenkins-in-docker-container

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!