services: api: build: context: .. dockerfile: docker/Dockerfile.api ports: - "5000:5000" volumes: # Named Volume statt Bind-Mount: Plattformen wie Dokploy klonen das Repo bei jedem Deploy # neu, ein Bind-Mount relativ zum Checkout (./data) würde dabei geleert. Das Named Volume # lebt im Docker-Daemon und übersteht "docker compose up --build --remove-orphans". - api-data:/app/data environment: - JWT_SECRET=${JWT_SECRET} - Geocoding__UserAgent=${GEOCODING_USER_AGENT:-LehrerApp-Server/1.0 (+https://science-teaching.de)} - ASPNETCORE_ENVIRONMENT=Production restart: unless-stopped volumes: api-data: