Sitemap
Better Programming

Advice for programmers.

The definitive guide

How To Run Any Windows CLI App in a Linux Docker Container

12 min readDec 17, 2019

--

by on

What’s in It for You?

Prerequisites

Docker

Docker Desktop configuration on macOS

Text editor

Windows app

Step 1. Determine Runtime Requirements

Dependencies

Dependency Walker
JetBrains dotPeek

Machine type/CPU

REPL to identify machine type of an EXE or DLL file
Dependency Walker in iHex

Step 2. Select a Docker Base Image

Distribution

Architecture

Ubuntu images on Docker Hub

Step 3. Install Wine

Installation

Set up Wine prefixes

Dockerfile to install WineHQ and setup a Wine prefix

Install Winetricks

Dockerfile to install Winetricks

Step 4. Install an X11 Window Server

Dockerfile to install Xvfb

Step 5. Install Additional Dependencies

.NET

Dockerfile to install Wine Mono
Dockerfile to install the official Microsoft .NET Framework

Visual C++ redistributable

Dockerfile to install Visual C++ Redistributable 2008

Step 6. Install Your Application

Standalone

Msiexec

Custom installer

Step 7. Configure Your Application

Examples

AMD64 Docker Image: 7-Zip (x64)

7-Zip 19.00 (x64) command-line interface
Dockerfile to install 7-Zip 19.00 (x64)

i386 Docker Image: 7-Zip (x86)

7-Zip 19.00 (x86) command-line interface
Dockerfile to install 7-Zip 19.00 (x86)

.NET framework 4.5.2: C# Hello World

Dockerfile to compile and execute HelloWorld.cs with .NET 4.5.2

Wine Mono: C# Hello World

Dockerfile to execute HelloWorld.cs with Wine Mono

Final Thoughts

Resources

Wine

.NET

Dependencies

Editors

Docker

Tools

Jens Meder
Jens Meder

Written by Jens Meder

Head of Development @ Apoplex Medical Technologies | Certified Kubernetes Application Developer | Writer | Photographer | Chef

Responses (3)