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?
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.
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/
The official Jenkins Docker image documentation says regarding volumes:
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 UID1000
: