Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-31225

docker.build fails with if HOME is not set.

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reopened (View Workflow)
    • Priority: Blocker
    • Resolution: Unresolved
    • Component/s: docker-workflow-plugin
    • Labels:
      None
    • Environment:
      CloudBees Docker Workflow 1.2
      Workflow 1.10.1
      Jenkins 1.609.1
      arch linux
    • Similar Issues:

      Description

      I had a node with docker installed - yet docker workflow was failing with

      /scratch/jenkins/workspace/myjob/.954d8efa/script.sh: line 2: docker: command not found
      

      yet docker was available on this node and in the path (as verified by sh 'which docker;docker version'

      It transpired that docker-workflow was spinning up another node unescearily and this node did not have docker installed - hence the failure.

      After some discussion with Jesse Glick we found that the node with docker on did not set the HOME environment variable.

      The workaround was to wrap the docker commands with withEnv(['HOME='+pwd()]).

      The plugin should explicitly state why it is spawing a new node - to help the user understand, and should probably not rely on the HOME environment variable being set to determine if it can use docker

        Attachments

          Issue Links

            Activity

            Hide
            jglick Jesse Glick added a comment -

            An echo message when starting a new node would be useful. The issue here is probably most easily resolved by updating the Workflow dependency to 1.9 (or newer), and checking for NODE_NAME, which is now unconditionally defined in the scope of any node block.

            Show
            jglick Jesse Glick added a comment - An echo message when starting a new node would be useful. The issue here is probably most easily resolved by updating the Workflow dependency to 1.9 (or newer), and checking for NODE_NAME , which is now unconditionally defined in the scope of any node block.
            Hide
            khan7 rizwan khan added a comment -

            what is the resolution for this ?
            I am facing the same issue?

            Show
            khan7 rizwan khan added a comment - what is the resolution for this ? I am facing the same issue?
            Hide
            michaelneale Michael Neale added a comment -

            I believe I have hit this from time to time.

            My solution in that case was to have a Dockerfile that adds a user:

            example:
            https://github.com/jenkinsci/jenkins-design-language/blob/master/Dockerfile

            And use the image that produces (not sure if exactly related though).

            Show
            michaelneale Michael Neale added a comment - I believe I have hit this from time to time. My solution in that case was to have a Dockerfile that adds a user: example: https://github.com/jenkinsci/jenkins-design-language/blob/master/Dockerfile And use the image that produces (not sure if exactly related though).
            Hide
            khan7 rizwan khan added a comment - - edited

            I am not running this inside a docker container . I am running on node , which have dokcer version 1.83 installed on it.
            Had set {{withEnv(['HOME='+pwd()])} but still the get the same error

            /scratch/jenkins/workspace/myjob/.954d8efa/script.sh: line 2: docker: command not found

            example:
            withEnv(['HOME='+pwd()])
            {
            def newApp = docker.build "mycorp/myapp:${env.BUILD_TAG}"
            }
            }

            Show
            khan7 rizwan khan added a comment - - edited I am not running this inside a docker container . I am running on node , which have dokcer version 1.83 installed on it. Had set {{withEnv(['HOME='+pwd()])} but still the get the same error /scratch/jenkins/workspace/myjob/.954d8efa/script.sh: line 2: docker: command not found example: withEnv( ['HOME='+pwd()] ) { def newApp = docker.build "mycorp/myapp:${env.BUILD_TAG}" } }
            Hide
            khan7 rizwan khan added a comment -

            Any update on this ???

            Show
            khan7 rizwan khan added a comment - Any update on this ???

              People

              • Assignee:
                jglick Jesse Glick
                Reporter:
                teilo James Nord
              • Votes:
                3 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated: