services: pocketbase: build: context: . args: # Version-Pin. Update: hier bzw. im Dockerfile hochsetzen und committen. PB_VERSION: ${PB_VERSION:-0.39.6} restart: unless-stopped ports: - "8090:8090" volumes: # Persistenz der SQLite-DB inklusive aller Laufzeitdaten, Uploads, # Mail-Settings und des Superusers. Ohne dieses Mapping ist nach jedem # Redeploy alles weg — das Schema käme zwar aus pb_migrations zurück, # die Daten aber nicht. - ./pb_data:/pb/pb_data # Migrationen zurück auf den Host. Ohne dieses Mapping schreibt PocketBase # die bei Schema-Änderungen im Admin-UI erzeugten Dateien nur ins # Container-Dateisystem — sie wären beim nächsten Build verloren und # könnten nie committet werden. Das COPY im Dockerfile bleibt trotzdem # bestehen, damit das Image auch ohne Bind-Mount das Schema mitbringt. - ./pb_migrations:/pb/pb_migrations environment: # Superuser wird nur beim allerersten Start angelegt (siehe entrypoint.sh) SUPERUSER_EMAIL: ${SUPERUSER_EMAIL:-} SUPERUSER_PASSWORD: ${SUPERUSER_PASSWORD:-} healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8090/api/health"] interval: 30s timeout: 5s retries: 3 start_period: 10s