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.