• Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Minor Minor
    • docker-workflow-plugin
    • Jenkins 2.7.4
      docker-workflow-plugin 1.9

      The Docker.groovy and WithContainerStep.java files have linux-specific commands that will fail to run on Windows Server with docker installed.

      Docker.groovy invokes CPS 'sh' step in several cases, and tries to start the container with the 'cat' command.

      The WithContainerStep whoAmI is using the 'id' utility to determine the user owning the workspace.

          [JENKINS-36776] Support Windows Server Containers

          I'm super excited to see a pull request that's has passed all the required check. I'm wondering what's holding it back from being merged.

          Using Windows containers as Jenkins Agents would be very very useful to me for testing in isolation and caching of dependencies and tools.

          Henry Borchers added a comment - I'm super excited to see a pull request that's has passed all the required check. I'm wondering what's holding it back from being merged. Using Windows containers as Jenkins Agents would be very very useful to me for testing in isolation and caching of dependencies and tools.

          jglick commented under that pull request saying, that the Plugin shoud better be left untouched to prevent "a critical regression".

          Even though I do not share his opinion on leaving the plugin untouched, I get his point - especially because the plugin has no active maintainer - and appreciate, that he even looked into this.

          So the current state of this problem shouldn't be "In Progress" anymore, as the development won't go on in the foreseeable future.

          Raphael Höser added a comment - jglick commented under that pull request saying, that the Plugin shoud better be left untouched to prevent "a critical regression". Even though I do not share his opinion on leaving the plugin untouched, I get his point - especially because the plugin has no active maintainer - and appreciate, that he even looked into this. So the current state of this problem shouldn't be "In Progress" anymore, as the development won't go on in the foreseeable future.

          Jesse Glick added a comment -

          Depends on whether existing maintainers (ndeloof? abayer?) are comfortable writing/testing/supporting major new features or refactorings like this; or whether someone else volunteers to take over maintenance. For the time being, withDockerContainer remains in fairly widespread use via the agent docker (or agent dockerfile) syntax in Declarative Pipeline, though I have proposed an alternative agent type based on the dockerNode step in the docker plugin, which seems less problematic. (It, too, is completely untested on Windows containers—pending INFRA-1400.)

          Jesse Glick added a comment - Depends on whether existing maintainers ( ndeloof ? abayer ?) are comfortable writing/testing/supporting major new features or refactorings like this; or whether someone else volunteers to take over maintenance. For the time being, withDockerContainer remains in fairly widespread use via the agent docker (or agent dockerfile ) syntax in Declarative Pipeline, though I have proposed an alternative agent type based on the dockerNode step in the docker plugin, which seems less problematic. (It, too, is completely untested on Windows containers—pending INFRA-1400.)

          I just got a PR merged on this plugin, I don't think that makes me a maintainer, does it ?

          I have no experience with windows container, and no personal interest for them, so won't be a great support for such a feature - whenever I fully understand the interest for others. 

           

          Nicolas De Loof added a comment - I just got a PR merged on this plugin, I don't think that makes me a maintainer, does it ? I have no experience with windows container, and no personal interest for them, so won't be a great support for such a feature - whenever I fully understand the interest for others.   

          Any progress update on this?

           

          It would be so nice to be able to leverage Windows Container support for our jenkins build!

          Guillaume Egles added a comment - Any progress update on this?   It would be so nice to be able to leverage Windows Container support for our jenkins build!

          Any update?

           

          Guillaume Egles added a comment - Any update?  

          gegles I don't know whether you really need direct docker support, but we moved onto using Kubernetes in our setup - you just need a windows based jnlp container which you insert as "jnlp" into your pod and then you can have windows based kubernetes pods.

          That way you need one Linux Kube Master Node in your cluster and after that you can mix and match windows and linux containers in seperate pods as you need for your builds. 

          Note for high scalings: Avoid running Linux Containers on Windows nodes, since this is possible with current builds, but the windows process scheduler doesn't handle high core counts well (up to 16 works totally fine).

          Raphael Höser added a comment - gegles I don't know whether you really need direct docker support, but we moved onto using Kubernetes in our setup - you just need a windows based jnlp container which you insert as "jnlp" into your pod and then you can have windows based kubernetes pods. That way you need one Linux Kube Master Node in your cluster and after that you can mix and match windows and linux containers in seperate pods as you need for your builds.  Note for high scalings: Avoid running Linux Containers on Windows nodes, since this is possible with current builds, but the windows process scheduler doesn't handle high core counts well (up to 16 works totally fine).

          Igor Kostenko added a comment -

           It is much easier to use docker client for running jobs and deal with corresponding issues (like interrupting job would not stop running container) than to setup Kubernetes cluster  just for that.

          Igor Kostenko added a comment -  It is much easier to use docker client for running jobs and deal with corresponding issues (like interrupting job would not stop running container) than to setup Kubernetes cluster  just for that.

          snapstromegon

          > the windows process scheduler doesn't handle high core counts well

          Please see this : https://techcommunity.microsoft.com/t5/Windows-Kernel-Internals/One-Windows-Kernel/ba-p/267142

          It supports 896 cores / 1792 logical processors. I don't think your computer has that many cores.

          Francois Rivard added a comment - snapstromegon > the windows process scheduler doesn't handle high core counts well Please see this :  https://techcommunity.microsoft.com/t5/Windows-Kernel-Internals/One-Windows-Kernel/ba-p/267142 It supports 896 cores / 1792 logical processors. I don't think your computer has that many cores.

          Joseph Petersen (old) added a comment - Fixed in  https://github.com/jenkinsci/docker-workflow-plugin/releases/tag/docker-workflow-1.21

            jetersen Joseph Petersen
            60f77484 Cody D
            Votes:
            54 Vote for this issue
            Watchers:
            64 Start watching this issue

              Created:
              Updated:
              Resolved: