Running Linux containers as part of tests on a Windows build

Hello :slight_smile:

I have been trying for the last few days to run Linux containers on one of Travis’ Windows build options.
Unfortunately, I can’t seem to bring it to work.

I tried a few options already, which didn’t work:

Sooner or later, when I will try to run a Linux-based container, I will get the error docker: image operating system "linux" cannot be used on this platform..

In the last few builds, to simplify things, I just tried to pull a busybox (because this is a Linux image without corresponding Windows image), which triggered the error: no matching manifest for windows/amd64 10.0.17763 in the manifest list entries (which basically means, as I’m using an image that has only Linux versions, that it can’t run Linux).

Would anyone have an idea how I could run Linux containers in a Windows build?
My test process needs to run for some parts inside Linux containers, and the goal is to verify during the build process that this also works on Windows (aka tests should run in a Linux container on the Windows build machine, and ideally end with success).

Build links: See any build in this PR The commit message mostly describes what the build is trying to achieve.

Thank you for the help.

We are having the same issues at when trying to run integration tests against multiple databases in containers: mysql, postgres and clickhouse. I was getting the no matching manifest for windows/amd64 10.0.17763 in the manifest list entries error too and found no way to switch docker to Linux containers.

Also interested in a solution.

You need Docker Machine to run Linux containers in Windows (it does that via setting up and running a Linux VM then interacting with it). It can be installed via Chocolatey I believe.

You also need nested virtualization support. It’s already available in Linux VMs but I dunno about Windows.

Isn’t just installing the Windows versions of the DB servers an option? Chocolatey should have packages for those as well.

Looks like a duplicate of

Note: You can install Docker/Docker-machine on a Windows build machine, but you won’t be able to switch the daemon/engine to use Linux. You can issue the command to do so, but it won’t have any effect (no switch happens).