如何修复构建 Jenkins 项目时发生的错误?

问题描述 投票:0回答:1

我是詹金斯的初学者。我不知道哪个语法会出错。

请推荐groovy语法检查工具,可以帮助你解决问题或解决问题

//我的 Jenkinsfile

podTemplate(label: 'hello',
    containers: [
        containerTemplate(
        name: 'git',
        image: 'alpine/git',
        ttyEnabled: true,
        command: 'cat'
        ),
        containerTemplate(
        name: 'docker',
        image: 'docker:latest',
        ttyEnabled: true,
        command: 'cat'
        ),
    ],
    volumes: [
        hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
    ]
) {
    node('hello') {
        def appImage
        def hubCred = docker-hub-token

        stage('Checkout') {
            container('git') {
                checkout scm
            }
        }

        stage('Build') {
            container('docker'){
                script {
                    appImage = docker.build yeawonkim/momssi
                }
            }
        }

        stage('Push'){
            container('docker'){
                script {
                    docker.withRegistry('', docker-hub-token){
                        appImage.push("0.0.1")
                    }
                }
            }
        }
    }
}

//jenkins控制台输出

Still waiting to schedule task
‘Jenkins’ doesn’t have label ‘hello’
Created Pod: kubernetes jenkins-kdev/hello-w4sjc-wg8jt
Agent hello-w4sjc-wg8jt is provisioned from template hello-w4sjc
---
apiVersion: "v1"
kind: "Pod"
metadata:
  annotations:
    buildUrl: "http://jenkins:8080/job/momssi-laravel/job/master/22/"
    runUrl: "job/momssi-laravel/job/master/22/"
  labels:
    jenkins: "slave"
    jenkins/label-digest: "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
    jenkins/label: "hello"
  name: "hello-w4sjc-wg8jt"
  namespace: "jenkins-kdev"
spec:
  containers:
  - command:
    - "cat"
    image: "alpine/git"
    imagePullPolicy: "IfNotPresent"
    name: "git"
    resources: {}
    tty: true
    volumeMounts:
    - mountPath: "/var/run/docker.sock"
      name: "volume-0"
      readOnly: false
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
      readOnly: false
  - command:
    - "cat"
    image: "docker:latest"
    imagePullPolicy: "IfNotPresent"
    name: "docker"
    resources: {}
    tty: true
    volumeMounts:
    - mountPath: "/var/run/docker.sock"
      name: "volume-0"
      readOnly: false
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
      readOnly: false
  - env:
    - name: "JENKINS_SECRET"
      value: "********"
    - name: "JENKINS_TUNNEL"
      value: "jenkins-agent:50000"
    - name: "JENKINS_AGENT_NAME"
      value: "hello-w4sjc-wg8jt"
    - name: "JENKINS_NAME"
      value: "hello-w4sjc-wg8jt"
    - name: "JENKINS_AGENT_WORKDIR"
      value: "/home/jenkins/agent"
    - name: "JENKINS_URL"
      value: "http://jenkins:8080/"
    image: "jenkins/inbound-agent:3142.vcfca_0cd92128-1"
    name: "jnlp"
    resources:
      requests:
        memory: "256Mi"
        cpu: "100m"
    volumeMounts:
    - mountPath: "/var/run/docker.sock"
      name: "volume-0"
      readOnly: false
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
      readOnly: false
  nodeSelector:
    kubernetes.io/os: "linux"
  restartPolicy: "Never"
  volumes:
  - hostPath:
      path: "/var/run/docker.sock"
    name: "volume-0"
  - emptyDir:
      medium: ""
    name: "workspace-volume"

Running on hello-w4sjc-wg8jt in /home/jenkins/agent/workspace/momssi-laravel_master
[Pipeline] {
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline
Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 1cdc9378-a61a-4881-8a2a-00e1f1e31ed4
groovy.lang.MissingPropertyException: No such property: hub for class: groovy.lang.Binding
    at groovy.lang.Binding.getVariable(Binding.java:63)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:285)
    at org.kohsuke.groovy.sandbox.impl.Checker$7.call(Checker.java:375)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:379)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:355)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:355)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
    at org.jenkinsci.plugins.workflow.cps.LoggingInvoker.getProperty(LoggingInvoker.java:121)
    at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
    at WorkflowScript.run(WorkflowScript:22)
    at ___cps.transform___(Native Method)
    at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:73)
    at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
    at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.fixName(PropertyishBlock.java:65)
    at jdk.internal.reflect.GeneratedMethodAccessor348.invoke(Unknown Source)

Jenkins 在 Kubernetes 上以 Pod 形式运行。 我的 laravel 项目包含 jenkinsfile,当我尝试在 jenkins 上构建此项目时出现错误。

kubernetes jenkins jenkins-pipeline jenkins-groovy
1个回答
0
投票

在这种情况下groovy语法的问题就在这里

        def hubCred = docker-hub-token
Groovy 中的

标识符不能有

-
字符。 Visual Studio Code 和 IntelliJ IDEA 有一些针对 groovy 的静态代码分析工具。

© www.soinside.com 2019 - 2024. All rights reserved.