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

docker.build throw IOExceptions with some sources

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • docker-workflow-plugin
    • None
    • CloudBees Docker Workflow 1.2
      Workflow 1.10.1
      Jenkins 1.631
      centos7

      When we use some images like 'centos:centos7', 'nodesource/centos7:0.12.7' or 'nodesource/jessie:0.12.7', it throws an exception when try to inspect the Id from the source:

      Example:
      FROM nodesource/centos7:0.12.7

      RUN yum install -y epel-release
      RUN yum install -y npm

      Exception:
      Running: Record trace of a Docker image used in FROM
      Running: Allocate node : Body : End
      Running: Allocate node : End
      Running: End of Workflow
      java.io.IOException: Cannot retrieve .Id from 'docker inspect centos:centos7'
      at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:176)
      at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:114)
      at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:74)
      at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40)
      at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:136)
      at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:112)

      Thanks,
      Henrique

          [JENKINS-31507] docker.build throw IOExceptions with some sources

          Jesse Glick added a comment -

          Hmm,

          $ docker inspect -f '{{.Id}}' centos:centos7
          ae0c2d0bdc100993f7093400f96e9abab6ddd9a7c56b0ceba47685df5a8fe906
          

          works for me. What does docker version say? Do you have a self-contained script to reproduce?

          Jesse Glick added a comment - Hmm, $ docker inspect -f '{{.Id}}' centos:centos7 ae0c2d0bdc100993f7093400f96e9abab6ddd9a7c56b0ceba47685df5a8fe906 works for me. What does docker version say? Do you have a self-contained script to reproduce?

          Hi Jesse, it worked when you run with the terminal, only fails when you run from the workflow-docker-plugin.
          The docker version is: 1.8.3

          Henrique Amaral added a comment - Hi Jesse, it worked when you run with the terminal, only fails when you run from the workflow-docker-plugin. The docker version is: 1.8.3

          Jesse Glick added a comment -

          Interesting, should just be running that command internally. Will check if I can reproduce. Do you have only one version of Docker installed on the system?

          Jesse Glick added a comment - Interesting, should just be running that command internally. Will check if I can reproduce. Do you have only one version of Docker installed on the system?

          Yes, I have only one version running in a CentOS 7 and the CentOS is a jenkins slave.

          Henrique Amaral added a comment - Yes, I have only one version running in a CentOS 7 and the CentOS is a jenkins slave.

          Josh Marston added a comment -

          I just got the same issue building from centos:centos7 on a Jenkins slave:

          java.io.IOException: Cannot retrieve .Id from 'docker inspect[REPO] -t [TAG]'
          at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:184)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:116)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:76)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40)
          at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:178)
          at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:124)
          at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:117)
          at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
          at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
          at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:16)

          Any workaround for this?

          Josh Marston added a comment - I just got the same issue building from centos:centos7 on a Jenkins slave: java.io.IOException: Cannot retrieve .Id from 'docker inspect [REPO] -t [TAG] ' at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:184) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:116) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:76) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:178) at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:124) at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:117) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:16) Any workaround for this?

          Bryan Hunt added a comment -

          I have just run into this problem. I have several projects that all use the same function to build a docker image. The one I set up a few minutes ago is throwing this same exception. The other projects seem to build fine.

          java.io.IOException: Cannot retrieve .Id from 'docker inspect      gpuwa-docker.nvidia.com/java:8u102-1.1.0'
          	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:190)
          	at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:119)
          	at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:75)
          	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:52)
          	at hudson.security.ACL.impersonate(ACL.java:221)
          	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:49)
          	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          	at java.lang.Thread.run(Thread.java:745)
          

          Bryan Hunt added a comment - I have just run into this problem. I have several projects that all use the same function to build a docker image. The one I set up a few minutes ago is throwing this same exception. The other projects seem to build fine. java.io.IOException: Cannot retrieve .Id from 'docker inspect gpuwa-docker.nvidia.com/java:8u102-1.1.0' at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:190) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:119) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:75) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:52) at hudson.security.ACL.impersonate(ACL.java:221) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:49) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang. Thread .run( Thread .java:745)

          Jesse Glick added a comment -

          The extra whitespace looks suspicious, perhaps you have FROM␣␣␣␣something? As usual, a self-contained, minimal, reproducible test case would expedite a fix (as well as possibly make a workaround obvious).

          Jesse Glick added a comment - The extra whitespace looks suspicious, perhaps you have FROM␣␣␣␣something ? As usual, a self-contained, minimal, reproducible test case would expedite a fix (as well as possibly make a workaround obvious).

          Sachin Gupta added a comment - - edited

          I got exactly same issue as @Bryan I have a base image and several dependent images use this base to build. One of them is consistently throwing this error, others are good.

          [Pipeline] dockerFingerprintFrom
          [Pipeline] }
          [Pipeline] // node
          [Pipeline] End of Pipeline
          java.io.IOException: Cannot retrieve .Id from 'docker inspect ******/atlas_base'
          at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:184)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:120)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:76)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40)
          at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:157)
          at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:117)
          at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:117)
          at groovy.lang.GroovyObject$invokeMethod$1.call(Unknown Source)
          at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)

          I looked at this failure code at https://github.com/jenkinsci/docker-workflow-plugin/blob/master/src/main/java/org/jenkinsci/plugins/docker/workflow/client/DockerClient.java and ran the inspect command from command line as the code does. This works

          1. docker inspect -f=".Id" *****/atlas_base
            sha256:336e0afe9988898976f28db21baf804af4dfff66a8d94ec3c372f459f8729d25

          Sachin Gupta added a comment - - edited I got exactly same issue as @Bryan I have a base image and several dependent images use this base to build. One of them is consistently throwing this error, others are good. [Pipeline] dockerFingerprintFrom [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline java.io.IOException: Cannot retrieve .Id from 'docker inspect ******/atlas_base' at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:184) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:120) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:76) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:157) at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:117) at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:117) at groovy.lang.GroovyObject$invokeMethod$1.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) I looked at this failure code at https://github.com/jenkinsci/docker-workflow-plugin/blob/master/src/main/java/org/jenkinsci/plugins/docker/workflow/client/DockerClient.java and ran the inspect command from command line as the code does. This works docker inspect -f=" .Id " *****/atlas_base sha256:336e0afe9988898976f28db21baf804af4dfff66a8d94ec3c372f459f8729d25

          Bryan Hunt added a comment - - edited

          I got my build to work. In my case, my Dockerfile looked like:

          FROM       gpuwa-docker.nvidia.com/java:8u102-1.1.0
          MAINTAINER Bryan Hunt
          ...
          

          Changing the Dockerfile as shown below worked.

          FROM gpuwa-docker.nvidia.com/java:8u102-1.1.0
          MAINTAINER Bryan Hunt
          ...
          

          Bryan Hunt added a comment - - edited I got my build to work. In my case, my Dockerfile looked like: FROM gpuwa-docker.nvidia.com/java:8u102-1.1.0 MAINTAINER Bryan Hunt ... Changing the Dockerfile as shown below worked. FROM gpuwa-docker.nvidia.com/java:8u102-1.1.0 MAINTAINER Bryan Hunt ...

          Jesse Glick added a comment -

          So possibly this just needs a .trim(); should be easy enough to reproduce in a functional test.

          Jesse Glick added a comment - So possibly this just needs a .trim() ; should be easy enough to reproduce in a functional test.

          Sachin Gupta added a comment -

          My issue was fixed. Just trimmed the space between FROM <base_image> to FROM <base_image>

          {single space between FROM and image name}

          Thanks!!

          Sachin Gupta added a comment - My issue was fixed. Just trimmed the space between FROM <base_image> to FROM <base_image> {single space between FROM and image name} Thanks!!

          Same issue here, any plan for fixing this? Dockerfile usually will be formatted using this tabs and spaced for better looking

          Yasmany Cubela Medina added a comment - Same issue here, any plan for fixing this? Dockerfile usually will be formatted using this tabs and spaced for better looking

          David Karr added a comment -

          I've seen the same problem and resolution. This is definitely a bug. I never would have figured out how to resolve this if I didn't see this bug report.

          David Karr added a comment - I've seen the same problem and resolution. This is definitely a bug. I never would have figured out how to resolve this if I didn't see this bug report.

          sébastien glon added a comment - - edited

          same for me
          Multi space between FROM and image name on Dockerfile

          sébastien glon added a comment - - edited same for me Multi space between FROM and image name on Dockerfile

          J Knurek added a comment -

          I'm seeing a similar error, but I think the root cause in my case is different.

          My pipeline has the following:

              docker.withRegistry('https://quay.io', 'quay-robot') {
                  def imageName = "test/example:123"
                  def img = docker.build(imageName)
              }
           

          and the logs show this, (notice there is no space at all between the image name)
          Cannot retrieve .Id from 'docker inspecttest/example:123

          docker build -t test/example:123 .
          Sending build context to Docker daemon 25.35 MB
          
          Step 1 : FROM alpine:latest
           ---> 4a415e366388
          Step 2 : MAINTAINER 
          ...
          Step 6 : ENTRYPOINT /docker-entrypoint.sh
           ---> Running in 7a1c46850107
           ---> fb2dfcecf73a
          Removing intermediate container 7a1c46850107
          Successfully built fb2dfcecf73a
          [Pipeline] dockerFingerprintFrom
          Executing command: docker inspect -f {{.Id}} test/example:123 
          
          java.io.IOException: Cannot retrieve .Id from 'docker inspecttest/example:123'
              at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:192)
              at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:115)
              at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:75)
              at 
          

          I've settled on a work-around by doing:

                  sh "docker build -t ${imageName}  ."
                  def img = docker.image(imageName)
          

          J Knurek added a comment - I'm seeing a similar error, but I think the root cause in my case is different. My pipeline has the following: docker.withRegistry( 'https: //quay.io' , 'quay-robot' ) { def imageName = "test/example:123" def img = docker.build(imageName) }   and the logs show this, (notice there is no space at all between the image name) Cannot retrieve .Id from 'docker inspecttest/example:123 docker build -t test/example:123 . Sending build context to Docker daemon 25.35 MB Step 1 : FROM alpine:latest ---> 4a415e366388 Step 2 : MAINTAINER ... Step 6 : ENTRYPOINT /docker-entrypoint.sh ---> Running in 7a1c46850107 ---> fb2dfcecf73a Removing intermediate container 7a1c46850107 Successfully built fb2dfcecf73a [Pipeline] dockerFingerprintFrom Executing command: docker inspect -f {{.Id}} test/example:123 java.io.IOException: Cannot retrieve .Id from 'docker inspecttest/example:123' at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:192) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:115) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:75) at I've settled on a work-around by doing: sh "docker build -t ${imageName} ." def img = docker.image(imageName)

          Have the same.

          Failed with error
          java.io.IOException: Cannot retrieve .Id from 'docker inspectmicrosoft/dotnet:1.1.2-sdk AS build-env'
          at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:203)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:119)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:75)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
          at hudson.security.ACL.impersonate(ACL.java:260)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at java.lang.Thread.run(Thread.java:748)
          Finished: FAILURE
          when doing

          def coreImage = docker.build("coremonolith:${env.BUILD_ID}")

          Dockerfile:
          FROM microsoft/dotnet:1.1.2-sdk AS build-env
          ENV ASPNETCORE_ENVIRONMENT Production
          COPY backend/ /app
          WORKDIR /app
          RUN dotnet restore && dotnet publish -c Release -o bin/published/
          WORKDIR /app/bin/published
          ENTRYPOINT dotnet backend.dll
           

          Dmytro Zhernosiekov added a comment - Have the same. Failed with error java.io.IOException: Cannot retrieve .Id from 'docker inspectmicrosoft/dotnet:1.1.2-sdk AS build-env' at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:203) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:119) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:75) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47) at hudson.security.ACL.impersonate(ACL.java:260) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Finished: FAILURE when doing def coreImage = docker.build( "coremonolith:${env.BUILD_ID}" ) Dockerfile: FROM microsoft/dotnet:1.1.2-sdk AS build-env ENV ASPNETCORE_ENVIRONMENT Production COPY backend/ /app WORKDIR /app RUN dotnet restore && dotnet publish -c Release -o bin/published/ WORKDIR /app/bin/published ENTRYPOINT dotnet backend.dll  

          Levon Saldamli added a comment - - edited

          I have the same problem when using an ARG in the FROM line, e.g.: 

          FROM $image_name:$version

          This worked fine though:

          FROM some_image_name:$version

          Using the workaround suggested by jknurek (thanks for the tip!).

           

          Levon Saldamli added a comment - - edited I have the same problem when using an ARG in the FROM line, e.g.:  FROM $image_name:$version This worked fine though: FROM some_image_name:$version Using the workaround suggested by  jknurek (thanks for the tip!).  

          YJ Hwang added a comment -

          Same here.

          I just removed the tab in front of the image name, then works. please patch this..

          YJ Hwang added a comment - Same here. I just removed the tab in front of the image name, then works. please patch this..

          Ray Saltrelli added a comment -

          I ran into this issue but in a slightly different way.

           
          FROM microsoft/dotnet:2.1-aspnetcore-runtime AS runtime
           
          ... yields ...
           
          java.io.IOException: Cannot retrieve .Id from 'docker inspect microsoft/dotnet:2.1-aspnetcore-runtime AS runtime'
          at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:220)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:133)
          at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:85)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
          at hudson.security.ACL.impersonate(ACL.java:290)
          at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at java.lang.Thread.run(Thread.java:748)
          Finished: FAILURE
           
          The "AS runtime" was what was causing problems for me.  Fortunately it wasn't necessary so I deleted it.

          Ray Saltrelli added a comment - I ran into this issue but in a slightly different way.   FROM microsoft/dotnet:2.1-aspnetcore-runtime AS runtime   ... yields ...   java.io.IOException: Cannot retrieve .Id from 'docker inspect microsoft/dotnet:2.1-aspnetcore-runtime AS runtime ' at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:220) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:133) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:85) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47) at hudson.security.ACL.impersonate(ACL.java:290) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Finished: FAILURE   The "AS runtime" was what was causing problems for me.  Fortunately it wasn't necessary so I deleted it.

          Brice Oliver added a comment -

          Thanks for the comment raysaltrelli.  That was exactly the issue I was running into also.  Removed the "AS <NAME>" from the FROM line (since I didn't the multi-stage name at that point).

          Brice Oliver added a comment - Thanks for the comment raysaltrelli .  That was exactly the issue I was running into also.  Removed the "AS <NAME>" from the FROM line (since I didn't the multi-stage name at that point).

          Similar issue here.

           

          Dockerfile:

          ARG VERSION=latest
          FROM repo-vp.development.ems:5000/emsys-adoptopenjdk11:$VERSION
          

          Jenkinsfile (declarative):

                    agent { 
                      dockerfile {
                        filename 'Dockerfile'
                        additionalBuildArgs "--build-arg VERSION=${env.JDK_VERSION}"
                        reuseNode true
                      }
                    }
          

          Error log:

          java.io.IOException: Cannot retrieve .Id from 'docker inspect repo-vp.development.ems:5000/emsys-adoptopenjdk11:$VERSION'
          	at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:220)
          	at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:133)
          	at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:85)
          	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
          	at hudson.security.ACL.impersonate(ACL.java:290)
          	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
          	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
          	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          	at java.lang.Thread.run(Thread.java:748)
          Finished: FAILURE
          
          

          I haven't found a workaround yet.

          Christian Ciach added a comment - Similar issue here.   Dockerfile: ARG VERSION=latest FROM repo-vp.development.ems:5000/emsys-adoptopenjdk11:$VERSION Jenkinsfile (declarative): agent { dockerfile { filename 'Dockerfile' additionalBuildArgs "--build-arg VERSION=${env.JDK_VERSION}" reuseNode true } } Error log: java.io.IOException: Cannot retrieve .Id from 'docker inspect repo-vp.development.ems:5000/emsys-adoptopenjdk11:$VERSION' at org.jenkinsci.plugins.docker.workflow.client.DockerClient.inspectRequiredField(DockerClient.java:220) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:133) at org.jenkinsci.plugins.docker.workflow.FromFingerprintStep$Execution.run(FromFingerprintStep.java:85) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47) at hudson.security.ACL.impersonate(ACL.java:290) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang. Thread .run( Thread .java:748) Finished: FAILURE I haven't found a workaround yet.

          Jesse Glick added a comment -

          The workaround would be to avoid agent dockerfile. Run on a plain agent type and run docker commands explicitly from sh.

          Probably it would be best to deprecate FromFingerprintStep and its kin, since the fingerprints are not actually used anywhere, and remove their calls from Docker.groovy. Alternately, the fingerprinting steps could catch and log all exceptions, never failing.

          Jesse Glick added a comment - The workaround would be to avoid agent dockerfile . Run on a plain agent type and run docker commands explicitly from sh . Probably it would be best to deprecate FromFingerprintStep and its kin, since the fingerprints are not actually used anywhere, and remove their calls from Docker.groovy . Alternately, the fingerprinting steps could catch and log all exceptions, never failing.

          There is a PR solving this here: https://github.com/jenkinsci/docker-workflow-plugin/pull/162

          Could a maintainer take a look at it?

          david bensoussan added a comment - There is a PR solving this here: https://github.com/jenkinsci/docker-workflow-plugin/pull/162 Could a maintainer take a look at it?

          Some PRS got merged, the plugins got updated as well.

           

          https://github.com/jenkinsci/docker-workflow-plugin/pull/162

          https://github.com/jenkinsci/docker-workflow-plugin/pull/180 

           

          I've removed the workarounds from the codebase I saw this issue in, and builds are working as expected while using multi-stage Dockerfiles. 

           

          Would recommend closing this issue.

          Avindra Goolcharan added a comment - Some PRS got merged, the plugins got updated as well.   https://github.com/jenkinsci/docker-workflow-plugin/pull/162 https://github.com/jenkinsci/docker-workflow-plugin/pull/180     I've removed the workarounds from the codebase I saw this issue in, and builds are working as expected while using multi-stage Dockerfiles.    Would recommend closing this issue.

            jglick Jesse Glick
            henamaral Henrique Amaral
            Votes:
            19 Vote for this issue
            Watchers:
            26 Start watching this issue

              Created:
              Updated: