-
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 仓库目录问题
问题描述
- 其实这个是用户目录造成的问题,由于配置文件`/etc/default/jenkins`中配置的用户默认是 jenkins。
- 这个用户没有对应的用户目录,这就会导致maven仓库被映射到 ?/.m2 。
- 这个问题在利用docker构建项目的时候也会出现,挂在了仓库目录,依赖包并没有写入。
解决方案
- 修改jenkins运行用户和用户组
- 添加java执行参数 -Duser.home=/path
-
jenkins 发布项目时找不到进程
问题描述
- jenkins 在发布完项目之后 并不能找到进程
导致原因
- jenkins 在执行完任务之后 默认会杀掉所有衍生的进程
解决方案
方案一 禁用杀掉衍生进程功能,启动jenkins时添加启动参数 -Dhudson.util.ProcessTree.disable=
true
方案二 添加变量标识 传统模式下添加 export BUILD_ID=dontKillMe;pipeline模式下添加 export JENKINS_NODE_COOKIE=dontKillMe myProcess