Jenkins Docker Image,使用是否使用绑定安装座



我正在阅读詹金斯·迪克尔(Jenkins Docker Readme(的这一点,似乎有一个部分与我当前的理解相矛盾。https://github.com/jenkinsci/docker/blob/master/readme.md

在我看来,说不使用绑定安装座,然后强烈建议使用绑定安装?

注意:避免使用主机计算机上的文件夹中的绑定安装夹到/var/jenkins_home ,因为这可能会导致文件许可 问题(容器内使用的用户可能没有权利 主机上的文件夹(。如果您真的需要绑定安装 jenkins_home,确保主机上的目录可通过 容器内的Jenkins用户(Jenkins用户 - UID 1000(或使用 -u some_other_user参数带有docker运行。

docker run -d -v jenkins_home:/var/var/jenkins_home -p 8080:8080 -p 50000:50000 Jenkins/Jenkins:LTS这将以独立模式运行Jenkins 随着端口转发和添加音量。您可以使用 命令" docker logs container_id'以检查首先登录 令牌。容器的ID将从上面命令的输出返回。

备份数据

如果您在卷中绑定安装 - 您可以简单地备份 该目录(即Jenkins_home(随时。

强烈建议。像一个数据库一样对待jenkins_home目录 - 在Docker中,您通常会将数据库放在 卷。

您使用绑定安装座吗?您会推荐他们吗?为什么或者为什么不?该文档似乎是模棱两可的。

正如所评论的,使用的语法用于卷:

docker run -d -v jenkins_home:/var/jenkins_home -n jenkins ...

定义了Docker卷名称Jenkins_homes,该名称将在以下内容中创建:
/var/lib/docker/volumes/jenkins_home

您可以轻松备份所述卷的想法:

$ mkdir ~/backup
$ docker run --rm --volumes-from jenkins -v ~/backup:/backup ubuntu bash -c “cd /var/jenkins_home && tar cvf /backup/jenkins_home.tar .”

并将其重新加载到另一个Docker实例。

这不同于绑定安装,这确实涉及构建 new docker image,以便能够由您的本地用户安装本地文件夹所有者(默认用户的仪器詹金斯官方图像:1000:1000(

FROM jenkins/jenkins:lts-jdk11
USER root
ENV JENKINS_HOME /var/lib/jenkins
ENV COPY_REFERENCE_FILE_LOG=/var/lib/jenkins/copy_reference_file.log
RUN groupmod -g <yourId>jenkins
RUN usermod -u <yourGid> jenkins
RUN mkdir "${JENKINS_HOME}"
RUN usermod -d "${JENKINS_HOME}" jenkins
RUN chown jenkins:jenkins "${JENKINS_HOME}"
VOLUME /var/lib/jenkins
USER jenkins

请注意,您必须声明 new 卷(此处/var/lib/jenkins(,因为如jenkinsci/docker中所示,官方/var/jenkins_home路径已经被称为官方jenkins Image的卷,并且您不能chon或chmod。

这种方法的优点是查看詹金斯的内容而无需使用docker。

您将使用:

运行它
docker run -d -p 8080:8080 -p 50000:50000 
  --mount type=bind,source=/my/local/host/jenkins_home_dev1,target=/var/lib/jenkins 
  --name myjenkins 
  myjenkins:lts-jdk11-2.190.3
sleep 3
docker logs --follow --tail 10 myjenkins

最新更新