Docker Template Stack Components

Container templates that can be combined into complete stacks

View project on GitHub


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.


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

  1. Prerequisites: Ensure Docker Desktop is installed and running on your system
  2. Download: Obtain the appropriate template stack for your technology
  3. Execute: Run the provided setup script to build and start your development container
  4. 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.

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 🧩 Docker Icon
    - 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)
Docker IconThis represents a container with a dedicated configuration (i.e., only for C++ development)
Docker IconThis 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

Footnotes:
- Note 1: The new preferred shorter prefix.

Home Sites
















Maintained by NicoJanE. Generated by GitHub Pages.