Welcome the DTS site — Docker Template Stack
Docker Template Stacks provide pre-configured containerized development environments for developers who want to leverage Docker for consistent, portable, and isolated development. Each Docker Template Stack is tailored for specific development scenarios and includes a complete development environment with all necessary tools, dependencies, and a working template project for specific programming languages and frameworks.
📚 Direct Link
🔶 The Available Stack Components
What’s Included
Docker Template Stack components are containerized development environments that combine:
- Pre-configured Docker containers with specific programming language toolchains
- Can be combined together 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
- GUI output, using WSLg or X11 Containers can be configured to display graphical output on the host
Docker Container Types
We distinguish between two container types and one container property type:
1. Type: GUI-Forwarding Containers 🖥️
These containers forward their (GUI) output to the host using X11 forwarding. They are prefixed with: App-X11-Forward
or X11-GUI
1 prefix and are marked with the above desktop icon in this document.
Host requirement
These containers require the XLaunch program to be installed 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. Type: Non-GUI Containers
These containers do not support GUI forwarding and do not use the special prefix.
Pluggable Container Architecture 🧩
The pluggable architecture is a core DTS concept that enables multiple containers to work together as a unified system while remaining independently manageable.
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 via a shared external Docker network
- Each container maintains its own configuration while communicating 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
📚 Technical Implementation
🔶 External Docker Network Setup Guide
Quick Setup Process
- Prerequisites: Ensure Docker Desktop is installed and running on your system
- Download: Obtain the appropriate template stack for your technology
- Execute: Run the provided setup script to build and start your development container
- Develop: Open the project in VS Code with Dev Containers and start coding
Who & Why & Required
▶ 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❓
▶ 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 benefits
- 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 Available Stack Components
Next follows a list with references to the available DTS stack components
Note: 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 😄
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 - App X11 Forward GUI Cross-Compiling Win32 C++ 🖥️
- specific for Win32/C++ language & frameworks - App X11 Forward PyCRust 🖥️
- An project container for development in Python (frontend) in combination with Rust and C/C++ (backend)
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.
- PHP DTS
- A PHP template project, Different php versions, PHP Unit test, Symfony and Apache2 - 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
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
─── ✦ ───
Legend & Footnotes
Legend:
🖥️ Container supports X11 forwarded GUI to host.
🧩 The container is by default part of an external network named: dev1-net (may be changed)
This represents a container with a dedicated configuration (i.e., only for C++ development)
This represents a container with multiple configurations (i.e., React, PHP, Node). You can choose which you want to use by configuring the appropriate sub-container