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

cat command in docker agents not detected correctly

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Minor Minor
    • docker-workflow-plugin
    • None
    • Jenkins 2.104 on Docker 17.10.0-ce on CentOS 7.4.1708 (Kernel 3.10.0-693.2.2.el7.x86_64)

      When using a declarative Jenkins pipeline with a stage that uses a Docker agent, I get a confusing error message in the Jenkins log:

      $ docker top 08e1c013e07083492ad0f03285f1a7d30063fb15e0cf39be7b55af6d1a03c829
      ERROR: The container started but didn't run the expected command. Please double check your ENTRYPOINT does execute the command passed as docker run argument. See https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#entrypoint for entrypoint best practices.
      

      The build continues normally and the cat command is actually running inside the container, so everything is fine except that the error message occurs although it shouldn't.

      Comparing the code in listProcess in https://github.com/jenkinsci/docker-workflow-plugin/blob/master/src/main/java/org/jenkinsci/plugins/docker/workflow/client/DockerClient.java with the output of docker top shows the likely cause of that error:

      docker top prints the following fields

      UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
      build               19799               19784               0                   22:23               pts/0               00:00:00            cat
      

      However, the Java client assumes that only PID, USER, TIME and COMMAND is printed. I suggest that the process list is determined by using an explicit format specifier like

      docker container top ${CONTAINER_ID} -eo pid,comm
      

          [JENKINS-49278] cat command in docker agents not detected correctly

          Hendrik Halkow created issue -
          Hendrik Halkow made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Nicolas De Loof made changes -
          Assignee New: Nicolas De Loof [ ndeloof ]
          Nicolas De Loof made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: In Progress [ 3 ] New: Resolved [ 5 ]
          marc young made changes -
          Comment [ [~docwhat] https://github.com/jenkinsci/docker-workflow-plugin/pull/116#issuecomment-362396110

          Ive downgraded to 1.14 and everything works, so Ill pin to that version until some progress comes to this ]
          Christoph Forster made changes -
          Link New: This issue relates to JENKINS-49385 [ JENKINS-49385 ]
          Nicolas De Loof made changes -
          Remote Link New: This issue links to "Page (Jenkins Wiki)" [ 20061 ]
          R. Tyler Croy made changes -
          Link New: This issue is duplicated by JENKINS-49446 [ JENKINS-49446 ]
          Scott Williams made changes -
          Remote Link New: This issue links to "Docker documentation for entrypoint and cmd interaction (Web Link)" [ 20074 ]
          Nicolas De Loof made changes -
          Link New: This issue is blocked by JENKINS-49385 [ JENKINS-49385 ]
          Chisel Wright made changes -
          Assignee Original: Nicolas De Loof [ ndeloof ] New: Chisel Wright [ chizcw ]

            Unassigned Unassigned
            hendrikhalkow Hendrik Halkow
            Votes:
            4 Vote for this issue
            Watchers:
            36 Start watching this issue

              Created:
              Updated: