获取错误:使用Jenkins构建Docker映像时权限被拒绝

时间:2020-02-09 05:22:35

标签: docker jenkins kubernetes continuous-integration

我配置了一个詹金斯管道来构建一个从github获取的项目。但是我在第2步-建立图片时遇到错误。然后,我尝试将(jenkins的)用户admin添加到“ docker”组,并且在kubernetes主vm中以用户admin的身份登录时,我可以成功运行build命令而没有错误,但是jenkins仍然出错。我使用blueocean插件创建管道。你知道如何解决这个问题吗?

enter image description here

更新:请参阅我的jenkinsfile

pipeline {

  environment {
    registry = "192.168.64.162:5000/justme/myweb"
    dockerImage = ""
  }

  agent any

  stages {

    stage('Checkout Source') {
      steps {
        git 'https://github.com/taibc/playjenkins.git'        
      }
    }

    stage('Build image') {      
      steps{

        script {
          dockerImage = docker.build registry + ":$BUILD_NUMBER"
        }
      }
    }

    stage('Push Image') {
      steps{
        script {
          docker.withRegistry( "" ) {
            dockerImage.push()
          }
        }
      }
    }

    stage('Deploy App') {
      steps {
        script {
          kubernetesDeploy(configs: "myweb.yaml", kubeconfigId: "mykubeconfig")
        }
      }
    }

  }

}

1 个答案:

答案 0 :(得分:0)

我通过将Jenkins安装到另一台服务器(不属于kubernetes集群)来解决此问题。但是,在将应用程序部署为链接时遇到了另一个问题:https://github.com/jenkinsci/kubernetes-cd-plugin/issues/122

这是我的Yaml文件

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: myweb
  name: myweb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - image: 192.168.94.162:5000/justme/myweb:1
        imagePullPolicy: Always
        name: myweb

---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: myweb
  name: myweb
spec:
  ports:
  - nodePort: 32223
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: myweb
  type: NodePort

这是我的詹金手稿

pipeline {

  environment {
    registry = "192.168.94.162:5000/justme/myweb"
    dockerImage = ""
  }

  agent any

  stages {

    stage('Checkout Source') {
      steps {
        git 'https://github.com/taibc/playjenkins.git'        
      }
    }

    stage('Build image') {      
      steps{

        script {
          dockerImage = docker.build registry + ":$BUILD_NUMBER"
        }
      }
    }

    stage('Push Image') {
      steps{
        script {
          docker.withRegistry( "" ) {
            dockerImage.push()
          }
        }
      }
    }

    stage('Deploy App') {
      steps {
        script {
          kubernetesDeploy(configs: "myweb.yaml", kubeconfigId: "mykubeconfig")
        }
      }
    }

  }

}
相关问题