我想在 Centos7 上的 Docker 容器中运行 Jenkins。 我看到了Jenkins的官方文档: 首先,从 Docker 仓库拉取官方的 jenkins 镜像。
docker pull jenkins
接下来,使用该镜像运行一个容器,并将容器中的数据目录映射到主机;例如,在下面的示例中,容器中的/var/jenkins_home 从主机上的当前路径映射到 jenkins/目录。 Jenkins 8080 端口也作为 49001 暴露给主机。
docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins
但是当我尝试运行 docker 容器时,出现以下错误:
/usr/local/bin/jenkins.sh: line 25: /var/jenkins_home/copy_reference_file.log: Permission denied
谁能告诉我如何解决这个问题?
最佳答案
Jenkins Docker 官方镜像 documentation说关于卷:
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.
也可以找到此信息 in the Dockerfile .
所以你需要做的就是确保目录 $PWD/jenkins
是 UID 1000
:
mkdir jenkins
chown 1000 jenkins
docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins
关于jenkins - 在 Docker 容器中启动 Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34706077/