| 🚀 To WSL Stacks | |
|
W
elcome to the DTS — A Docker Template Stack Collection |
Introduction
Docker Template Stacks offer pre-configured, containerized development environments, enabling developers to leverage Docker for consistent, portable, and isolated workflows.Each stack is tailored to specific development scenarios and includes all necessary tools, dependencies, and a working template project for various programming languages and frameworks
📚 Start here
🔶 The Available DTS Components
Design principles
Docker Template Stack components are containerized development environments that combine the following features, which apply to all containers listed in the “Available Stack Components”
- Pre-configured Docker containers with specific programming language toolchains
- Can be combined to create a network Stack
- Complete development toolset including compilers, package managers, and utilities
- Ready-to-use template projects demonstrating best practices and architecture
- Integrated development environment with VS Code and Dev Containers extension
- May support GUI output, using WSLg or X11 Containers can be configured to display graphical output on the host.
Features
Docker Container Types
There are two different container types
1. GUI-Forwarding Containers 🖥️
These containers forward their GUI output to the host using X11.
They are prefixed with: App-X11-Forward or X11-GUI 1 prefix and are marked with the above desktop icon in this document.
Host requires XLaunch
These containers require the XLaunch program on your Windows host. XLaunch uses the X11 protocol to forward the GUI to your host. Instructions can be found in the How-to document of the relevant containers.
2. Non-GUI-Forwarding Containers
These containers do not support GUI forwarding and do not use the special prefix.
Pluggable Container Architecture 🧩
Pluggable architecture is a core DTS property, allowing multiple containers to work together as a unified system while remaining independently manageable. Stack components with this icon 🧩 have a default pluggable implementation. Additionally, any stack component can be upgraded with a pluggable property.
Pluggable Property Details
How it works
- Any container can be made pluggable by configuring its docker-compose.yml file with a network section
- Containers with the 🧩 icon come pre-configured with this setup
- Containers connect through a shared external Docker network.
- Each container maintains its own configuration and communicates seamlessly
Benefits
- Modular deployment - start only the services you need
- Independent updates - update containers without affecting others
- Service isolation - each container handles a specific responsibility
- Scalable architecture - add new services easily
─── ✦ ───
📚 Usage Instruction
🔶 External Docker Network Setup Guide
General Quick Setup Process
- Prerequisites: Ensure Docker Desktop is installed and running on your system
- Clone: Clone the appropriate template stack for your technology
- Execute: Run the setup script to build and start your development container
- Develop: Open the project in VS Code using Dev Containers and start coding.
Additional setup Information
General Requirements
- Have Docker Desktop installed and running on your host
- Docker Desktop images are tested and supported on the following host operating systems:
- Supported on Windows✅
- Supported on Linux❓
- Supported on macOS❓
- Docker Desktop images are tested and supported on the following host operating systems:
Target Audience
- Cross-platform developers wanting consistent environments across Windows, macOS, and Linux
- Teams requiring identical development environments regardless of host OS
- Developers starting new projects and wanting to skip initial setup
- Students and educators needing quick access to configured development environments
- Anyone who values rapid setup, portability, and completely isolated development environments
Key Features
The stacks feature the following
- Rapid Development Setup
- Execute a single setup script to build and configure your development container
- Automatically provision the Docker container with all required tools and dependencies
- Launch directly into VS Code with Dev Containers and start coding immediately
- Time to productivity: Minutes, not hours
- Completely Isolated Environment
- Each stack runs in its own Docker container with only relevant tools and dependencies
- Eliminates version conflicts and dependency issues between different projects
- Provides identical development environment across different operating systems
- Zero pollution of your host system
- Production-Ready Template Projects
- Start with a fully functional template application that demonstrates best practices
- Includes proper project structure, configuration files, and Docker setup
- Template can be immediately built, tested, and deployed using containers
- Skip the boilerplate and focus on your business logic
- True Cross-Platform Development
- Develop applications that run identically on Windows, macOS, and Linux
- Test your applications in production-like containerized environments
- Use the same development stack regardless of your host operating system
- One container, runs everywhere
The Stack Components
The following sections list the available DTS stack components, organized by container type.
Current under Development (improvements):
NET-Dev-Template-Stack ➜ NET dev Docker stack for containers
GUI Forward Project Containers
These containers run Debian OS with X11 GUI forwarding and include a specific development environment, along with a template project to help you get started easily. Most are dedicated to a single development language. However, X11-Dev is a multi-container solution: it consists of a Base Container and multiple Sub Containers, each with its own development environment and templates. With X11-Dev, you can combine several development environments by adding the desired sub-containers.
- X11-GUI-Dev 🖥️🧩

The new General purpose X11 GUI container that forwards the GUI to Windows host, replacing App X11 Forward GUI
- A generic .NET container with a basic Command Application template
- An Avalonia project container, with Avalonia GUI project template.
- A .NET project container in combination with GTK#.
- A PHP/Python/Rust Sub container - App X11 Forward GUI Cross-Compiling Win32 🖥️

- Specific for win32/C language & frameworks
- And for Win32/C++ language & frameworks - App X11 Forward PyCRust 🖥️

- A project container for development in Python (frontend) combined with Rust and C/C++ (backend) App X11 Forward GUI Cross-Compiling Win32 C++🖥️⚠️
- Removed in favor of: App X11 Forward GUI Cross-Compiling Win32 above
None GUI Project Containers
These containers run Debian OS without X11 GUI forwarding. They still provide a specific development environment and a template project to help you get started quickly. Most are dedicated to a single development language.
- STM32
- A Docker container for microcontroller bare-bone projects, in C and C++ - React DTS
- A Docker container for React - Rust DTS
- A Docker container for Rust - .NET DTS 🧩
- A Docker container with .NET containers and template projects - PHP DTS 🔍
- A PHP template project, different PHP versions, PHPUnit tests, Symfony, and Apache2
Supporting Containers
These containers do not include a development environment. Instead, they provide specific tools designed to integrate into your container stack. These are called Pluggable containers because you can easily add them to your network/stack. By default, they use the external network dev1-net (see Legend).
- Jenkins 🧩
- Jenkins CI/CD setup for individual developers working on local projects. - Maria DB 🧩
- Database for individual developers working on local projects.
Docker Desktop support
Although these images were developed on Windows using Docker Desktop, they should work on other operating systems with minor changes (e.g., file path formats). This is currently unverified — optimistic expectation 😄
Legend
- 🖥️ Container supports X11 forwarded GUI to host.
- 🧩 The container is by default part of an external network named: dev1-net (may be changed)
- ⚠️ The container is deprecated and may be removed.
- 🔍 This container or item needs review.
Represents a container with a dedicated configuration (e.g., only for C++ development).
Represents a container with multiple configurations (e.g., React, PHP, Node). You can choose which to use by configuring the appropriate sub-container.
License
All repositories are MIT licensed and free to use. For optional commercial support, customization, training, or long-term maintenance, see COMMERCIAL.md.
Footnotes
- Note 1: The new preferred, shorter prefix.
─── ✦ ───