Cannot set custom PATH inside docker container

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major
    • Component/s: docker-workflow-plugin
    • None
    • Environment:
      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.

            Assignee:
            Unassigned
            Reporter:
            Robin Smith
            Votes:
            21 Vote for this issue
            Watchers:
            27 Start watching this issue

              Created:
              Updated: