2.1 KiB
2.1 KiB
Story 1.1: Docker-Compose-Umgebung aufsetzen
Status: done
Story
Als Entwickler, möchte ich eine vollständige lokale Docker-Compose-Umgebung, so dass ich ohne lokale Python/Node-Installation entwickeln kann.
Acceptance Criteria
docker compose up -dstartet drei Services:db(PostgreSQL 16),api(FastAPI Port 8000),frontend(Next.js Port 3000)GET /api/healthgibt{"status": "ok"}zurück- Frontend ist unter
http://localhost:3000erreichbar pg_isreadyim db-Container antwortet mitaccepting connections- Named Volumes:
postgres_dataundchroma_datasind definiert
Tasks / Subtasks
- Task 1:
docker-compose.ymlmit drei Services erstellen (AC: 1–4)- Subtask 1.1:
db-Service mit PostgreSQL 16-alpine, Healthcheck - Subtask 1.2:
api-Service mitdepends_on db,env_file: .env,chroma_data-Volume - Subtask 1.3:
frontend-Service mitNEXT_PUBLIC_API_URL-Env
- Subtask 1.1:
- Task 2:
.env.examplemit allen Pflicht-Keys erstellen (AC: 5) - Task 3:
.gitignoreum.enverweitern - Task 4:
backend/Dockerfileundfrontend/Dockerfileerstellen
Dev Notes
chroma_dataVolume wird auf/app/chroma_dbim api-Container gemapptpostgres_dataVolume für DB-Persistenz über Neustarts hinwegapinutztservice_healthyBedingung für db-Abhängigkeit
Project Structure Notes
docker-compose.ymlim Projekt-Rootbackend/Dockerfileundfrontend/Dockerfile
References
- [Source: CLAUDE.md#Environment Variables]
- [Source: _bmad-output/planning-artifacts/architecture.md#Deployment-Architektur]
Dev Agent Record
Agent Model Used
Amelia (💻 BMAD Dev Agent)
Completion Notes List
- PostgreSQL Healthcheck verhindert Race Condition beim API-Start.
chroma_dataNamed Volume sichert ChromaDB-Persistenz zwischen Container-Neustarts.
File List
docker-compose.yml.env.examplebackend/Dockerfilefrontend/Dockerfile