dir('path') is broken when used within "docker.image().inside{}"

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      It seems that when 'dir' is used within a docker container, it is expected that the directory exists on the host and not within the docker container. The following minimal Jenkinsfile showcases this issue:

       

      node('docker') {
          stage('Build within docker') {
              // path to the workspace on the local machine and wthin the docker image
              workspace = env.WORKSPACE
              workspaceDocker = '/workspace'
      
              image = docker.image("ubuntu:18.04")
              image.pull()
      
              image.inside("-v ${workspace}:${workspaceDocker}") {
                  sh 'pwd'
      
                  sh """#!/bin/sh
                  cd ${workspaceDocker}
                  pwd
                  """
      
                  // this fails with the following error:
                  // java.nio.file.AccessDeniedException: /workspace
                  dir(workspaceDocker) {
                      sh 'pwd'
                  }
              }
          }
      }
      

       

       

            Assignee:
            Unassigned
            Reporter:
            Krassimir Valev
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: