Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-34276

docker.inside within a withRegistry block seems to use image.id instead of image.imageName()

XMLWordPrintable

      I'm trying to execute a maven build inside of my custom container (my.registry.com/build-env:jdk8-maven3):

      node('docker') {
           docker.withRegistry('https://my.registry.com', 'docker-registry-login') {
              def maven = docker.image("my-build-env:jdk8-maven3")
              
              sh "echo ${maven.imageName()} -- ${maven.id}"
              maven.pull()
              maven.inside() {
                  sh "echo Hello"
              }
           }
      }
      

      It goes well until the pull, which uses the imageName (my.registry.com/build-env:jdk8-maven3) but the run command uses id (build-env:jdk8-maven3)

      Abbreviated logs:

      Started by user Radesh Rao
      [Pipeline] Allocate node : Start
      Running on docker in /data/jenkins/workspace/My pipeline
      [Pipeline] node {
      [Pipeline] Set environment variables : Start
      [Pipeline] withEnv {
      [Pipeline] Sets up Docker registry endpoint : Start
      [Pipeline] withDockerRegistry {
      [Pipeline] sh
      [Cloud pipeline] Running shell script
      + echo my.registry.com/build-env:jdk8-maven3 -- build-env:jdk8-maven3
      my.registry.com/build-env:jdk8-maven3 -- build-env:jdk8-maven3
      [Pipeline] sh
      [Cloud pipeline] Running shell script
      + docker inspect -f . build-env:jdk8-maven3
      
      Error: No such image or container: build-env:jdk8-maven3
      [Pipeline] sh
      [Cloud pipeline] Running shell script
      + docker pull my.registry.com/build-env:jdk8-maven3
      jdk8-maven3: Pulling from build-env
      fdd5d7827f33: Pulling fs layer
      // ....
      // snip
      // ....
      416e801cfa37: Pull complete
      Digest: sha256:cadb8d0e48a2dc98d1c88f633b8ac226d5df00ffeaa66d3522b02dfdd055351b
      Status: Downloaded newer image for my.registry.com/build-env:jdk8-maven3
      [Pipeline] Run build steps inside a Docker container : Start
      $ docker run -t -d -u 995:991 -w "/data/jenkins/workspace/My pipeline" -v "/data/jenkins/workspace/My pipeline:/data/jenkins/workspace/My pipeline:rw" -v "/data/jenkins/workspace/My pipeline@tmp:/data/jenkins/workspace/My pipeline@tmp:rw" -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** build-env:jdk8-maven3 cat
      [Pipeline] Run build steps inside a Docker container : End
      [Pipeline] } //withDockerRegistry
      [Pipeline] Sets up Docker registry endpoint : End
      [Pipeline] } //withEnv
      [Pipeline] Set environment variables : End
      [Pipeline] } //node
      [Pipeline] Allocate node : End
      [Pipeline] End of Pipeline
      java.io.IOException: Failed to run image 'build-env:jdk8-maven3'. Error: Unable to find image 'build-env:jdk8-maven3' locally
      docker: Error response from daemon: Authentication is required: Get https://registry-1.docker.io/v2/library/build-env/manifests/jdk8-maven3: unauthorized: incorrect username or password.
      See 'docker run --help'.
      	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.run(DockerClient.java:112)
      	at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:145)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:136)
      	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:113)
      	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
      	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:15)
      	at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(jar:file:/var/lib/jenkins/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:112)
      	at org.jenkinsci.plugins.docker.workflow.Docker.node(jar:file:/var/lib/jenkins/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:63)
      	at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(jar:file:/var/lib/jenkins/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:104)
      	at WorkflowScript.run(WorkflowScript:10)
      	at org.jenkinsci.plugins.docker.workflow.Docker.withRegistry(jar:file:/var/lib/jenkins/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow/Docker.groovy:38)
      	at ___cps.transform___(Native Method)
      	at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
      	at sun.reflect.GeneratedMethodAccessor518.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
      	at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:40)
      	at com.cloudbees.groovy.cps.Next.step(Next.java:58)
      	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
      	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:277)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:77)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:186)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:184)
      	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:47)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
      	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:724)
      Finished: FAILURE
      

            jglick Jesse Glick
            radeshrao Radesh Rao
            Votes:
            9 Vote for this issue
            Watchers:
            18 Start watching this issue

              Created:
              Updated:
              Resolved: