-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins 2.89.3
docker-workflow 1.14
I'm trying to set a custom PATH in a docker.image('...').inside block.
For example, I would like to be able to do something like this:
node('docker') { docker.image('some-build-image').inside { sh 'echo $PATH' withEnv(['PATH+MAVEN=/opt/maven-3.3.3/bin']) { sh 'echo $PATH' sh 'mvn --version' } } }
But the PATH environment variable inside the docker image does not get updated - the two echo statements produce exactly the same output, and the Maven command fails with the following error: "mvn: command not found"
I see that as a result of #JENKINS-43590, the PATH env var is no longer passed from the host to the docker container (which seems sensible, as the environments can be different), but I feel it should still possible to manipulate the PATH variable inside the docker container somehow, e.g by using withEnv. Even a workaround like running the shell step sh 'export PATH=$PATH:/opt/maven-3.3.3/bin' does not have the required outcome.
- is duplicated by
-
JENKINS-53025 withEnv PATH+ syntax doesn't work in docker.image
- Closed
- is related to
-
JENKINS-66605 Declarative pipeline with Docker image overrides PATH inside container on Windows
- Open
- relates to
-
JENKINS-43590 docker.inside() breaks container environment.
- Open