SCM Sync configuration with git

  "jenkins configuration backup"

Posted by Dongyupu on January 29, 2018

SCM Sync configuration plugin

当jenkins运行在容器中时,需要注意容器中启动jenkins的用户是否拥有备份仓库的访问权限,否则会导致备份无法提交。

查看日志

我使用的官方的jenkinsci/blueocean镜像,里面没有ssh秘钥,也没有配置git用户信息,需要自己映射文件到镜像里以便插件在使用时可以同步代码。

jenkins docker-compose.yml

jenkins: 
  image: jenkinsci/blueocean
  user: root
  volumes: 
  - /app/jenkins-home:/var/jenkins_home
  - /var/run/docker.sock:/var/run/docker.sock
  - /root/.ssh:/root/.ssh
  - /root/.gitconfig:/root/.gitconfig
  ports: 
  - "8080:8080"
  - "50000:50000"

为了获取运行docker的权限,可能需要使用root用户来启动jenkins。默认情况下,只有root用户或者docker组内的用户才能访问/var/run/docker.sock文件。 默认的jenkins容器通过jenkins用户来启动服务器。jenkins用户不属于docker用户组,不过即使jenkins属于容器内的docker用户组,仍然不能访问docker socket, 因为宿主机和容器中的组ID与用户ID并不一致(有一个例外就是root用户,其ID总是0)。