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)} - WEBUNTIS_SCHOOL=${WEBUNTIS_SCHOOL:-} - WEBUNTIS_HOST=${WEBUNTIS_HOST:-} - WEBUNTIS_USER=${WEBUNTIS_USER:-} - WEBUNTIS_PASSWORD=${WEBUNTIS_PASSWORD:-} - WEBUNTIS_CLIENT=${WEBUNTIS_CLIENT:-LehrerApp} - WEBUNTIS_SESSION_IDLE_MINUTES=${WEBUNTIS_SESSION_IDLE_MINUTES:-10} - ASPNETCORE_ENVIRONMENT=Production restart: unless-stopped volumes: api-data: