Production-Ready Docker Compose for Laravel & Filament

This setup is based on real production usage and evolved over time as I faced scaling and deployment issues.

Share
Production-Ready Docker Compose for Laravel & Filament

Introduction

In the previous article about Docker Setup, we built a production-ready Docker image for Laravel & Filament.

But in real-world applications, a single container is never enough.

Running a production application requires orchestrating multiple services:

  • a web server
  • a PHP runtime
  • a database
  • a cache system
  • background workers
  • scheduled jobs

In this article, I'll show you the exact Docker Compose setup I use in production to run Filament applications reliably.

This setup is based on real production usage and evolved over time as I faced scaling and deployment issues.

Why I don't use Supervisor

A common approach is to run everything inside a single container using tools like Supervisor:

  • PHP-FPM
  • Horizon
  • scheduler

I used this approach in the past, but it quickly becomes limiting.

Main issues:

  • hard to monitor individual processes
  • no granular healthchecks
  • scaling becomes all-or-nothing
  • debugging is more complex

Instead, I follow a simple rule:

👉 one container = one responsibility

This makes the system easier to reason about and much more flexible in production.