title: Jenkins pipeline docker agent - docker run error - Failed to run image - java.io.IOException
body: <p>I have tried used jenkins with docker, both are installed on my machine (w10) and I run docker images with jenkins. But when i followed the example in the jenkins documentation (<a href="https://jenkins.io/doc/pipeline/tour/getting-started/" rel="nofollow noreferrer">example from doc</a>) it didn't work. Different pipeline scripts worked when not involving the <code>agent { docker ... }</code>, I also tried adding the <code>docker plugin</code> from the jenkins config interface. </p>
  
  <p><strong>pipeline script</strong></p>
  
  <pre><code>// Jenkinsfile (Declarative Pipeline)
  pipeline {
      agent { docker { image 'maven:3.3.3' } }
      stages {
          stage('build') {
              steps {
                  sh 'mvn --version'
              }
          }
      }
  }
  </code></pre>
  
  <p><strong>error stack</strong></p>
  
  <pre><code>[Pipeline] withDockerContainer
  Jenkins does not seem to be running inside a container
  $ docker run -d -t -w "C:/Users/A/.jenkins/workspace/first-pipeline_master/" -v "C:/Users/A/.jenkins/workspace/first-pipeline_master/:C:/Users/A/.jenkins/workspace/first-pipeline_master/" -v "C:/Users/A/.jenkins/workspace/first-pipeline_master@tmp/:C:/Users/A/.jenkins/workspace/first-pipeline_master@tmp/" -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** maven:3.3.3 cmd.exe
  
  Pipeline] // withDockerContainer
  [Pipeline] }
  [Pipeline] // withEnv
  [Pipeline] }
  [Pipeline] // node
  [Pipeline] End of Pipeline
  java.io.IOException: Failed to run image 'maven:3.3.3'. Error: docker: Error response from daemon: the working directory 'C:/Users/A/.jenkins/workspace/first-pipeline_master/' is invalid, it needs to be an absolute path.
  See 'docker run --help'.
      at org.jenkinsci.plugins.docker.workflow.client.WindowsDockerClient.run(WindowsDockerClient.java:57)
      at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:199)
      at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:286)
      at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:179)
      at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
      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:20)
      at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:126)
      at org.jenkinsci.plugins.docker.workflow.Docker.node(Docker.groovy:66)
      at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:114)
      at org.jenkinsci.plugins.pipeline.modeldefinition.agent.impl.DockerPipelineScript.runImage(DockerPipelineScript.groovy:54)
      at org.jenkinsci.plugins.pipeline.modeldefinition.agent.impl.AbstractDockerPipelineScript.configureRegistry(AbstractDockerPipelineScript.groovy:73)
      at org.jenkinsci.plugins.pipeline.modeldefinition.agent.impl.AbstractDockerPipelineScript.run(AbstractDockerPipelineScript.groovy:52)
      at org.jenkinsci.plugins.pipeline.modeldefinition.agent.CheckoutScript.checkoutAndRun(CheckoutScript.groovy:61)
      at ___cps.transform___(Native Method)
      at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:84)
      at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:113)
      at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:83)
      at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
      at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:46)
      at com.cloudbees.groovy.cps.Next.step(Next.java:83)
      at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
      at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
      at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:129)
      at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:268)
      at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
      at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
      at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
      at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:186)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:370)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:93)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:282)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:270)
      at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:66)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
      at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
      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
  </code></pre>
  
  <p>I have found a <a href="https://stackoverflow.com/questions/56136415/jenkins-windows-docker-fails-to-run-image-working-directory-is-invalid-it-need">similar issue</a> on SO (the same but no clear solution)</p>