jenkinsci / jenkinsci/docker-workflow-plugin
[JENKINS-43590] docker.inside() breaks container environment.
- Dominant language
- Java
- Stars
- 527
- Forks
- 422
- Avg merge
- 10m
- Merged PRs (30d)
- 1
Description
We have PATH set on our build slaves (via configure -> Node properties -> Environment Variables) that won't work in most docker containers. Specifically, we use /usr/local/bin:/a/bin. Note how /usr/bin and /bin aren't in the PATH (which is where cat usually is located.
Normally, the docker.inside() command's docker run isn't setting the -e PATH=... flag. But every so often it uses the PATH from the build slave configuration which causes the docker run to not find cat![]()
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"cat\": executable file not found in $PATH".
I was able to track this down by modifying docker-workflow to not mask the PATH: https://github.com/jenkinsci/docker-workflow-plugin/pull/96
I don't know what the expected behavior (overriding the PATH on a container seems like a "Bad Idea", since the container may-or-may-not be in LSB/POSIX layout) is supposed to be.
It is clear that this random flipping between behaviors is bad.
---
Originally reported by
docwhat, imported from: docker.inside() breaks container environment.
Raw content of original issue
We have PATH set on our build slaves (via configure -> Node properties -> Environment Variables) that won't work in most docker containers. Specifically, we use /usr/local/bin:/a/bin. Note how /usr/bin and /bin aren't in the PATH (which is where cat usually is located.
Normally, the docker.inside() command's docker run isn't setting the -e PATH=... flag. But every so often it uses the PATH from the build slave configuration which causes the docker run to not find cat
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"cat\": executable file not found in $PATH".
I was able to track this down by modifying docker-workflow to not mask the PATH: https://github.com/jenkinsci/docker-workflow-plugin/pull/96
I don't know what the expected behavior (overriding the PATH on a container seems like a "Bad Idea", since the container may-or-may-not be in LSB/POSIX layout) is supposed to be.
It is clear that this random flipping between behaviors is bad.
- environment:
docker-workflow 1.10
Contributor guide
Assessment
This issue has not been assessed yet.