← Zurück zu Notizen

Docker Compose für Symfony-Projekte


Docker Compose ermöglicht es, mehrere Container (z. B. PHP, Datenbank, Nginx) als ein zusammenhängendes System zu definieren und mit einem einzigen Befehl zu starten. Für Symfony-Projekte ist das der Standard, um eine konsistente Entwicklungsumgebung über das ganze Team hinweg sicherzustellen.

Eine typische docker-compose.yml für ein Symfony-Projekt sieht so aus:

services:
  php:
    build: ./docker/php
    volumes:
      - ./:/var/www/html
    depends_on:
      - database

  database:
    image: postgres:16
    environment:
      POSTGRES_DB: app
      POSTGRES_PASSWORD: app
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Um die Container zu starten:

docker compose up -d

Ein Befehl innerhalb des PHP-Containers wird immer so ausgeführt:

docker compose exec php php bin/console cache:clear

Wichtiger Hinweis: Volumes (wie db_data) sorgen dafür, dass Datenbankinhalte auch nach einem Neustart der Container erhalten bleiben. Wird ein Volume gelöscht (docker compose down -v), gehen alle Daten unwiederbringlich verloren.