jenkinsci / jenkinsci/docker-workflow-plugin

[JENKINS-41894] deleteDir() for cwd removes workspace when run in docker.image('builder').inside

Open
#478 10 comments 0 reactions 0 assignees View on GitHub
component:docker-workflow-plugin imported-jira-issue priority:major resolution:unresolved
Dominant language
Java
Stars
527
Forks
422
Avg merge
10m
Merged PRs (30d)
1

Description

This snippet (with docker.image.inside) fails:

```
node('default') {
docker.image('builder').inside {
deleteDir()
checkout scm
sh 'git rev-parse HEAD > git-revision.tmp'
env.REVISION = readFile('git-revision.tmp').trim()
}
}

```

While this snippet doesn't:

```
node('default') {
deleteDir()
checkout scm
sh 'git rev-parse HEAD > git-revision.tmp'
env.REVISION = readFile('git-revision.tmp').trim()
}

```

The failure begins with the attempt to use the checked out files, with this error:

```
[Pipeline] sh
[FLE3OSMVFPS5YXYDBJO2SDKESHOZUWIWXDMRIPXDFZ27TAUUNB6Q] Running shell script
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
+ git rev-parse HEAD
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
/home/jenkins/workspace/-FLE3OSMVFPS5YXYDBJO2SDKESHOZUWIWXDMRIPXDFZ27TAUUNB6Q@​tmp/durable-f4c5cca7/script.sh: line 2: git-revision.tmp: No such file or directory
Raw

```

deleteDir() calls hudson.FilePath.deleteRecursive() which "Deletes this directory, including all its contents recursively."

Somehow when not working with docker, the pipeline recovers from this situation. But when doing that in a docker image, it fails.

---
Originally reported by david_resnick, imported from: deleteDir() for cwd removes workspace when run in docker.image('builder').inside


  • status: Open
  • priority: Major
  • component(s): docker-workflow-plugin
  • resolution: Unresolved
  • votes: 11
  • watchers: 20
  • imported: 2025-12-07

Raw content of original issue

This snippet (with docker.image.inside) fails:



node('default') {

docker.image('builder').inside {
deleteDir()
checkout scm
sh 'git rev-parse HEAD > git-revision.tmp'
env.REVISION = readFile('git-revision.tmp').trim()
}
}

While this snippet doesn't:



node('default') {

deleteDir()
checkout scm
sh 'git rev-parse HEAD > git-revision.tmp'
env.REVISION = readFile('git-revision.tmp').trim()
}

The failure begins with the attempt to use the checked out files, with this error:



[Pipeline] sh

[FLE3OSMVFPS5YXYDBJO2SDKESHOZUWIWXDMRIPXDFZ27TAUUNB6Q] Running shell script
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
+ git rev-parse HEAD
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
/home/jenkins/workspace/-FLE3OSMVFPS5YXYDBJO2SDKESHOZUWIWXDMRIPXDFZ27TAUUNB6Q@tmp/durable-f4c5cca7/script.sh: line 2: git-revision.tmp: No such file or directory
Raw

deleteDir() calls hudson.FilePath.deleteRecursive() which "Deletes this directory, including all its contents recursively."

Somehow when not working with docker, the pipeline recovers from this situation. But when doing that in a docker image, it fails.

environment

```
Pipeline basic steps: 2.3

Docker pipeline: 1.9.1

Jenkins: 2.19.3
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.