我尝试在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相关
2条答案
按热度按时间6ioyuze21#
当您使用终端时,您被验证为可能具有必要权限的本地用户。当您运行Jenkins管道时,管道以
jenkins
用户身份运行,该用户可能缺少必要的权限。您需要使用chmod
来给予权限,或者在jenkins
用户的主目录中创建和检索工件。yzxexxkh2#
解决方案在于docker保存总是创建一个具有受限权限的tarball,我们需要在将文件保存到源机器后立即执行
chmod 755
,然后docker在目标机器中的加载工作正常!