traefik-library-image icon indicating copy to clipboard operation
traefik-library-image copied to clipboard

Add nanoserver-1809 Windows container images

Open awakecoding opened this issue 3 years ago • 7 comments

This pull request adds nanoserver-1809 Windows container images for traefik, as a complement for the servercore-1809 container images. The nanoserver images are MUCH smaller than the servercore images, but they have less Windows host compatibility. The nanoserver-1809 tag is compatible with Windows Server 2019 with process-level isolation, but it can still be run on Windows 10 with Hyper-V isolation. One small difference between nanoserver is that it uses ContainerUser instead of ContainerAdministrator by default, I've changed it to avoid potential issues with regards to file permissions, making it usable as a drop-in replacement for the servercore images.

I am not very familiar with the structure of this repository, but I noticed that there were v1 and v2 Dockerfile templates, and a Dockerfile containing the latest 1.x version. I made both templates but I used the latest 2.x in the non-templated Dockerfile for testing. I built the dockerfile like this: docker build . -t v2.4.8-traefik-nanoserver-1809 and I was able to use it as a replacement for the corresponding servercore image.

Notice that I've used "nanoserver-1809" as the container tag, and not "windowsnanoserver-1809". Just like we don't repeat "alpinelinux" in "alpine" tags, we don't really need to repeat "windows" in "servercore" and "nanoserver" tags. I have recently helped MongoDB get their nanoserver container images, and they've decided to use "nanoserver" instead of "windowsnanoserver", so I suggest traefik just follows the same convention. I use the same one for all of my own container images, and most windows container images now use this convention.

Let me know if you have any questions, I'd be more than happy to help. I just want official nanoserver traefik images upstream to avoid the need to separately maintain unofficial container images on my side. traefik and mongo were the only two third-party containers I needed to fully complete my switch to nanoserver.

awakecoding avatar Jun 04 '21 19:06 awakecoding

@ldez @StefanScherer there you go, I applied the netapi32.dll missing DLL fix, and both 1.7 and 2.4 work just fine now. I can only assume 2.4 no longer needs it, but we cannot be sure that no code path leads to that DLL being loaded, so I applied the fix in both 1.x and 2.x Dockerfile templates.

awakecoding avatar Jun 04 '21 20:06 awakecoding

@StefanScherer I just noticed you are one of the reviewers for this PR, are you one of those who can approve it as well? I don't know if you get marked as a reviewer simply for commenting on it. I didn't know you were involved with traefik :)

awakecoding avatar Jun 04 '21 21:06 awakecoding

@awakecoding please stop spamming me (Twitter, GitHub, ...), just be patient.

We (the Traefik maintainers) will review this PR.

https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews

ldez avatar Jun 04 '21 21:06 ldez

Sorry about that, I got a bit too excited. Have a good weekend!

awakecoding avatar Jun 04 '21 23:06 awakecoding

Hi! It's been a month since I opened this PR already, is there a chance we could get it reviewed and merged? This is literally the only last third-party container I need with a nanoserver container image. If I can't get it in a timely manner I will have to start publishing my own, but I would rather use the official container image that is always up to date instead.

awakecoding avatar Jul 08 '21 13:07 awakecoding

Hi, any news about this?

apetrozzelli avatar Apr 11 '22 10:04 apetrozzelli

At the risk of beating a dead horse, is there anything specifically holding this one up? Happy to help out if I can.

ashanrath avatar Mar 27 '23 09:03 ashanrath