./data war ein Bind-Mount relativ zum Git-Checkout - bei Dokploy wird das Repo pro Deploy frisch geklont, ein per CLI angelegter Nutzer war nach einem reinen Routing-Redeploy spurlos verschwunden. Betraf nicht nur Nutzer, sondern denselben Api:DataPath für Ereignis-Log/Snapshots/ Anhänge - also jeden Server-Datenbestand bei jedem Redeploy. - docker-compose.yml: Named Volume "api-data" statt Bind-Mount, lebt unabhängig vom Checkout im Docker-Daemon. - backup.sh: auf volume-basiertes Backup umgeschrieben (Alpine- Hilfscontainer statt direktem Host-Pfad). - docker/README.md, TODO.md 10.2.4: Vorfall dokumentiert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
20 lines
583 B
YAML
20 lines
583 B
YAML
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}
|
|
- ASPNETCORE_ENVIRONMENT=Production
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
api-data:
|