14.01.2026

Reading time: 7 minutes

Containerisation Part 2 – How we use DDEV and Docker in projects at dkd

Graphic of identical ships at sea, loaded with the same cargo

Identical setup. Anytime, anywhere.

In the first part, we described the advantages of containerisation. Now we would like to show how we implement this at dkd – from the local environment with DDEV to our CI/CD pipeline to dynamic preview, staging and production.

Our setup at a glance

Our development environment is based on DDEV, which uses Docker. We create a dynamic review stage for each merge request. This preview helps us to quickly review changes before they are transferred to a production-like staging environment and finally to the live platform. Once developed, we use container images across all stages – this ensures consistency from local development to the live level.

Local development with DDEV

Our local development environment is based on the TYPO3 DDEV blueprint and is supplemented by our own images for various project components. These include the Apache web server, PHP (including the appropriate version and extensions) and databases such as MariaDB or MySQL. Depending on the project, we optionally use Redis, Varnish, Solr or Mailcatcher. By using Docker, these services can be easily deployed across all stages. Consistency is important to us: the same images that are used locally are also used in the staging and live environments, so that tested changes go live reliably.

Pipeline with Docker containers

Instead of traditional ‘deployment via copy & SSH’, we rely on a modern pipeline with Docker containers. All changes are stored in a container image in the repository and go through the same stages:

  • Commit & merge request: A feature branch is created and a merge request is opened.
  • Build: CI builds versioned images from the code repository.
  • Test: Automated tests such as linting, unit tests, performance and regression tests, security tests and UATs are performed.
  • Provisioning: Images are launched in a review stage that corresponds to the live environment.
  • Review & QA: Functional and technical reviews as well as customer acceptance are carried out.
  • Merge: After approval, the temporary stage is automatically dismantled and the change is transferred to the main branch.
  • Rollback capable: Git tags ensure that a rollback function can be used.

Practical advantages of our deployment setup

Our method speeds up development and reduces errors: uniform containers ensure stability, while automated testing guarantees quality. Development costs are reduced as fewer feedback loops and development efforts are required.

Dynamic review stages

Each merge request creates an isolated environment that we can provision within minutes. It uses the same images as the staging and live environments and is accessible via password-protected URLs. These stages allow features to be tested and approved separately without disrupting other pipeline processes.

View of the dynamic review stages

Staging environment

Our staging environment mirrors the production environment exactly, including images, configurations and, if necessary, data. This is where all changes from the dynamic review stages are merged and prepared for final deployment through further extensive testing.

Live environment

Our live environment is also operated via the Docker setup. It is supported by uniform images and processes such as monitoring, alerting, error monitoring and backups.

A setup for lasting success

dkd offers a proven and future-oriented, container-based setup. Our standardised and hardened images and clearly structured processes significantly accelerate development. We stand for predictable releases, minimised risk and, at the same time, increased speed and quality in development and operation.

References

[1] Containerisation & Docker | Part 1
 

Write comment

* These fields are required

Comments

No Comments