在Docker容器中启动Jenkins

7 jenkins docker centos7

我想在Centos7上的Docker容器中运行Jenkins.我看到了Jenkins的官方文档:首先,从Docker存储库中提取官方jenkins图像.

docker pull jenkins
Run Code Online (Sandbox Code Playgroud)

接下来,使用此映像运行容器并将数据目录从容器映射到主机; 例如,在下面的示例中,来自容器的/ var/jenkins_home从主机上的当前路径映射到jenkins /目录.Jenkins 8080端口也作为49001暴露给主机.

docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行docker容器时,我收到以下错误:

/usr/local/bin/jenkins.sh: line 25: /var/jenkins_home/copy_reference_file.log: Permission denied
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何解决这个问题吗?

Tho*_*eil 16

关于卷的官方Jenkins Docker图像文档说:

docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins
Run Code Online (Sandbox Code Playgroud)

这会将jenkins数据存储在主机上的/ your/home中.确保容器中的jenkins用户可以访问/ your/home(jenkins user-uid 1000),或者使用-u some_other_user参数和docker run.

此信息也可在Dockerfile中找到.所以你需要做的就是确保UID$PWD/jenkins拥有该目录: 1000

mkdir jenkins
chown 1000 jenkins
docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home -t jenkins
Run Code Online (Sandbox Code Playgroud)