Jenkins Docker加载权限被拒绝

kuhbmx9i  于 12个月前  发布在  Jenkins
关注(0)|答案(2)|浏览(150)

我尝试在Jenkins管道中使用Docker load加载一个tar ball。我得到下面的错误

+ docker load -i /home/test/build_artifacts/test.tar
open /home/test/build_artifacts/test.tar: permission denied

这是我的Docker管道脚本

docker.withRegistry(registry, credentials) {
      sh "docker load -i /home/test/build_artifacts/${repo_name}.tar"
      docker.image(repo_name).push('latest')
}

我已经尝试了下面,并重新启动我的Jenkins!

sudo usermod -a -G docker jenkins

sudo usermod -a -G docker root

在终端上进一步加载docker运行得很好,所以它必须与jenkins相关

6ioyuze2

6ioyuze21#

当您使用终端时,您被验证为可能具有必要权限的本地用户。当您运行Jenkins管道时,管道以jenkins用户身份运行,该用户可能缺少必要的权限。您需要使用chmod来给予权限,或者在jenkins用户的主目录中创建和检索工件。

yzxexxkh

yzxexxkh2#

解决方案在于docker保存总是创建一个具有受限权限的tarball,我们需要在将文件保存到源机器后立即执行chmod 755,然后docker在目标机器中的加载工作正常!

相关问题