Cannot set custom PATH inside docker container

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

XMLWordPrintable

      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.

            Assignee:
            Unassigned
            Reporter:
            Robin Smith
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: