Jenkins docker push到harbor报错

Jenkins docker push到harbor私服报错解决方法

Jenkins报错

Jenkinsfile中使用docker push到私服的时候报错,报错信息如下:

unauthorized: unauthorized to access repository: ocp/eureka-server, action: push: unauthorized to access repository: ocp/eureka-server, action: push

这是因为jenkins在推送镜像的时候使用的是jenkins的伪用户,那么既然要推送就要登录,那么首先在当前用户生成config.json

当前用户使用docker login生成config.json

当前用户下使用如下命令进行登录

docker login ip:port

输入用户名和你们之后在当前用户根目录的.docker目录下生成一个config.json文件,内容如下:

[wangxianfeng@hs ~]$ cat /root/.docker/config.json 
{
        "auths": {
                "harbor.aiuyo.com:643": {
                        "auth": "d2FuZ3hpYW5mZW5nOlhpYW5mZW5nOTk="
                }
        }
}

把.docker复制到/var/lib/jenkins目录下

  1. 使用root登录后
  2. 将/用户名/.docker/目录拷贝到/var/lib/jenkins下
  3. 修改文件夹权限 chown -R jenkins.jenkins .docker

 

cp -r /root/.docker/ /var/lib/jenkins/
cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker

本人是这个原因,修改后是可以推送的

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Jenkins中使用管道执行Docker命令时,可能会遇到一些。其中两个常见的误是: 1. "Got permission denied":这个误是由于Jenkins用户没有执行Docker命令的权限导致的。解决方法是将Jenkins用户添加到docker组中,并重新启动Jenkins服务。可以使用以下命令实现: [usermod -a -G docker jenkins systemctl restart jenkins] 2. "touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied":这个误是由于Jenkins没有写入/var/jenkins_home/copy_reference_file.log文件的权限导致的。这可能是由于文件系统权限问题引起的。要解决这个问题,可以尝试更改文件系统的权限。请注意确保正确设置Jenkins Home目录的权限。 以上是两种常见的Jenkins管道Docker以及解决方法。希望对你有所帮助。 引用自 : 执行结果 出现“Got permission denied”,主要是权限问题,jenkins pipeline是在master上执行的,Jenkins是由jenkins用户启动的,但是jenkins用户没有执行docker的权限,所以导致以上,所以我们的解决方法如下 $ usermod -a -G docker jenkins $ systemctl restart jenkins 引用自 : 这是因为jenkins默认使用jenkins用户操作,只需要将jenkins用户加入docker 组 dir('release') { sh "cat harbor_password.txt | docker login harbor-local.xxx.com --username admin --password-stdin" sh "docker build -t ${HARBOR_IMAGE} ." sh "docker push ${HARBOR_IMAGE}" sh "echo '$IMAGETAG' >> $JENKINS_HOME/workspace/CD/xxx-CD/DOCKER_TAGS" echo "===============Successfully pushed Docker Image ${HARBOR_IMAGE} .===============" echo "Cleaning up workspace..." cleanWs() } 引用自 : 如果 touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值