Dockerizing windows binary, same steps different results on different host OS

Hello everyone,

Were trying to dockerize a windows binary - unreal engine 4 server that is.
Ive been able to run the dockerized app on my machine with host OS Windows 10

using this microsoft/dotnet-framework:4.7.2-sdk-windowsservercore as base
added C++ runtimes , direct x and few raw dlls.

Then I have tried to repeat the same steps on windows server 2016 and the app failed to run.

Dependency walker targeted missing libraries from windows core api.

Is it possible to add every dependency to the image so it runs regardless of the host operating system ?
Or a better question:
Are windows 10 and windows server 2016 so different that its impossible to simulate an equal environment using a docker image.

Forgive my lack of knowledge on the subject, deadlines… :slight_smile:

This is the list of missing modules in the image built on windows server 2016

The host machine is irrelevant when looking at Docker (other than the fact that some base images can’t be used unless you use corresponding version on the host). What matters is the base image. And another thing to factor in is that Win 2016 is different than Win 10 and both are different than Win 2016 Server Core (which is technically what you are using) inside the Docker container. Treat a Docker container like you would a VM. If it’s not install within that container/VM, anything depending on it will fail.