Felix Dziekan

Why Typo3 and Docker are not good friends

Gepostet von: Felix Dziekan in: Blog am 

I might get some pushback for this, but I’ll say it anyway: TYPO3 and Docker are not always a great match.

Let me be clear first. I like Docker. It is simple, useful, and works on almost every system. I also like TYPO3. It is powerful, flexible, and has improved a lot over the years.

But when you combine them, things can get complicated. Not because they can’t work together - they do - but because they follow very different ideas.

How Docker works

Docker runs applications in containers. Each container should do one job. For example:

  • a web server
  • PHP
  • a database

In a typical setup, you run one container per service. This keeps things simple and easy to manage.

You can run multiple services in one container, but in most cases you should not.

The real problem

In development, Docker and TYPO3 work fine together. The problems usually start when you move to production.

TYPO3 needs files that are created while the system is running. These include:

  • uploaded files (fileadmin/)
  • processed images
  • generated CSS and JavaScript

These files are written by PHP, but they must be served by the web server.

The shared filesystem problem

Docker containers are isolated. That means they do not share files by default.

To make TYPO3 work, you need shared storage between containers. In development, this is easy with Docker volumes.

In production, it becomes more complex:

  • you need persistent storage
  • you need correct file permissions
  • you need to handle container restarts

This is all possible - but it adds extra work compared to a simple server setup.

Site packages and asset paths

TYPO3 stores CSS, JavaScript, and images inside extensions. For example:

typo3conf/ext/my_sitepackage/Resources/Public/

Your web server must be able to serve these files directly.

This means:

  • your server config must know these paths
  • or you need a build step to move files to a public folder

Every change in your extensions can affect your setup. In teams, this often leads to confusion and “works on my machine” problems — the exact thing Docker is supposed to fix.

State vs stateless

Docker is designed for stateless systems. Containers should be easy to replace at any time.

TYPO3 is different. It stores important data on the file system, such as:

  • uploads
  • cache files
  • logs

This makes TYPO3 a stateful system.

Docker wants replaceable containers. TYPO3 depends on files that must stay. That difference causes most of the problems.

Should you use Docker with TYPO3?

For local development: yes.

Docker gives you a consistent environment and makes onboarding easier.

For production: it depends.

If you need scaling, multiple services, or complex infrastructure, Docker can make sense. If not, a simple server setup with a good deployment process is often easier and more stable.

In the end, TYPO3 and Docker can work together — but you need to understand the trade-offs.

And just to be clear: this website is running TYPO3 in Docker. It works. It just comes with some extra complexity.

Bye Bye

Well that's it from my side for today.
Have a good one!

Need a Senior Engineer Who Ships?

20+ years. Production systems. Real deadlines. Whether you need an architect who can design the system, a developer who can build it, or a DevOps engineer who can deploy and keep it running — I've done all three, often on the same project. Let's skip the agency overhead and talk directly.