• jenkins 执行 docker pull 权限错误  

执行shell

docker pull maven:3-alpine

错误信息

Warning: failed to get default registry endpoint from daemon (Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/info: dial unix /var/run/docker.sock: connect: permission denied). Using system default: https://index.docker.io/v1/

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/create?fromImage=maven&tag=3-alpine: dial unix /var/run/docker.sock: connect: permission denied

script returned exit code 1

解决方案

# 将jenkins加入docker用户组
sudo usermode -aG docker jenkins
  • jenkins maven 仓库目录问题

问题描述

  1. 其实这个是用户目录造成的问题,由于配置文件`/etc/default/jenkins`中配置的用户默认是 jenkins。
  2. 这个用户没有对应的用户目录,这就会导致maven仓库被映射到 ?/.m2 。
  3. 这个问题在利用docker构建项目的时候也会出现,挂在了仓库目录,依赖包并没有写入。

解决方案

  1. 修改jenkins运行用户和用户组
  2. 添加java执行参数 -Duser.home=/path
  • jenkins 发布项目时找不到进程

问题描述

  1. jenkins 在发布完项目之后 并不能找到进程

导致原因

  1. jenkins 在执行完任务之后 默认会杀掉所有衍生的进程

解决方案

     方案一   禁用杀掉衍生进程功能,启动jenkins时添加启动参数 -Dhudson.util.ProcessTree.disable=true

     方案二   添加变量标识 传统模式下添加 export BUILD_ID=dontKillMe;pipeline模式下添加 export JENKINS_NODE_COOKIE=dontKillMe myProcess

官方说明地址

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐