Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please rewrite Docker in C #41347

Closed
ghost opened this issue Aug 12, 2020 · 2 comments
Closed

Please rewrite Docker in C #41347

ghost opened this issue Aug 12, 2020 · 2 comments

Comments

@ghost
Copy link

ghost commented Aug 12, 2020

Description

I'm trying to build Docker for ARM64 Windows but I'm getting a strange error:

image
Cool ASCII art though.

Even building for ARM32 Windows fails:

image

That might be realetd to the fact that Windows/ARM32 is pretty useless and Go doesn't even attempt to support it for quite some time.

Even if I fix it to build for ARM32 that pointless since there's no ARM32 version of vmcomputer.dll etc. on ARM64 Windows 10. HCS isn't really accessible from "ARMWOW64".

On the other hand, we've got at least two commercial-grade C/C++ compilers for Windows/ARM64 and for many other platforms.

I know it's so very cool to be a 10xer who uses all the shiny crap from Google and the Commander, but it makes Docker a lot less usable than if it had been written in a language that has seen real world adoption based on its merits and is really cross-platform.

While we're waiting for Go to finally support Windows/ARM64, perhaps you'd consider migrating Docker to a useful language?

By the time Go supports Windows/ARM64 we'll want Docker for another platform it won't support, that probably already has C compilers supporting it.

Steps to reproduce the issue:

  1. Do the steps documented in Dockerfile.windows but add GOOS=windows and GOARCH=arm64

Describe the results you received:
Build failure.

Describe the results you expected:
Windows/ARM64 dockerd.exe and docker.exe binaries.

@thaJeztah
Copy link
Member

We considered Fortran, but decided to use Go after heavy discussion

It's open source though, so contributions welcome (don't Forget Kubernetes, which may also need a rewrite)

Closing this issue for now, because there's no plans currently to rewrite, but feel free to continue the conversation

@thaJeztah
Copy link
Member

thaJeztah commented Aug 13, 2020

Seriously though, rewriting in C is not a realistic option at this point (and would be a massive amount of work, with unclear benefits).

As to the build error in moby/term, I think that may get resolved by moby/term#14 (or a similar change could be made). Native Windows container support on Windows / arm, will require support from Microsoft (large parts of container support on Windows is using internal functionality of the Windows platform). If your interest is in running Linux containers, not native Windows containers, then WSL2 might be a more realistic option (I think WSL2 may be supported on windows/arm ?), in which case the Linux builds could run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant