question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Support container operations on Windows runners

See original GitHub issue

Describe the enhancement

I would like to run a Windows Docker container on a Windows runner. But was surprised to find out that this is not supported:

Error: Container operations are only supported on Linux runners

Specifically, I am asking that:

  • jobs.<job_id>.container work on Windows runners
  • It allows for use of Windows containers (as opposed to Linux containers)

Code Snippet

Here’s an example workflow of what I’m asking for:

jobs:
  windows-build:
    name: Windows Build
    runs-on: windows-2019
    container:
      image: mcr.microsoft.com/windows/servercore:ltsc2019
    steps:
      - run: ...

Additional information

N/A

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:25
  • Comments:8 (1 by maintainers)

github_iconTop GitHub Comments

25reactions
neersightedcommented, Dec 2, 2022

Hi, I’m an engineer who works on the product formerly known as Docker EE (and now known as Mirantis Container Runtime). We work in the upstream Moby project on a daily basis to ensure our product is as close to upstream Moby as possible, and count several maintainers among our team.

I’d love to understand why GitHub needs MCR (Docker EE) over a from-source build of Moby. I’d also love to determine if we can do something as Mirantis to help GitHub support this for all open-source projects. If you’re from GitHub, please reach out – I’d be very happy to discuss upstream Moby and its development process/licensing, MCR’s lifecycle (we usually deliver patches in a matter of weeks, but historically version numbers have not been aligned, and this may be the source of confusion), and any other questions/concerns you may have.

16reactions
thecloudtaylorcommented, Mar 8, 2023

@tprk77 we are not supporting windows container for the following reasons:

  • Extra windows version requirements, ex regular windows 10 desktop may not work with certain network/volume features
  • We can’t install docker-ce on GitHub windows hosted runner VM due to license issues.
  • We have to install docker-ee which is usually 6-12 months behind docker-ce on feature and bug fixes.
  • Container on Linux and Windows are not feature parity.
  • Windows is just not good at supporting containers.

@TingluoHuang - I am the group product manager for Windows containers. I disagree with a set of these assertions and very much disagree with the over decision as clearly from this discussion and many others we have had there is customer need for this support.

To the points: #1 (Win 10 etc…) - Firstly, I’m not sure why this is even relevant to the discussion. While of course developers leverage Windows client while building applications the build pipeline and production usage of them is on Windows Server.

#2 (Docker CE) - You can use Moby (to @neersighted’s point).

#3 (MCR delays) - I would be very interested to understand what features fixes, specific to Windows containers, you where delayed on? The Mirantis team has typically been very active at incorporating blocking issues into EE builds.

#4 (feature parity) - The first priority/goal of Windows containers is enabling customers a part forward for there Windows Server applications. There are definitely features on our roadmap that will enhance that further but we believe and have many customers in production that have been very successful moving apps forward. There are a whole host of Linux features/functionality that just simply don’t make since in a Windows world. Just as there are Windows features that don’t make since in a linux world.

#5 (windows is not good at hosting containers) - I’m just going to leave this at argumentative and unproductive.

Read more comments on GitHub >

github_iconTop Results From Across the Web

About Windows containers
A container is an isolated, lightweight package for running an application on the host operating system. Containers build on top of the host ......
Read more >
Support policy for Windows Server containers in on- ...
ContainerD running on Windows Server can create, manage, and run Windows Server Containers but Microsoft doesn't provide any support for it. For ...
Read more >
Get started: Prep Windows for containers
To run a Windows container you must have a supported container runtime available on your machine. The runtimes currently supported on Windows ......
Read more >
Windows container version compatibility
Example 1: The container host is running Windows Server 2016 with KB4041691 applied. Any Windows Server container deployed to this host must be ......
Read more >
Windows Containers FAQ
What are the prerequisites for running containers on Windows? What of the Windows operating systems are supported in Kubernetes? How do I patch...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found