Skip to content

[FEAT] Story 0.5 Docker Configuration & Inter-Service Communication #3

@yeomin4242

Description

@yeomin4242

한줄 설명

Create Docker Compose configuration for all services implementing Pattern B architecture: Spring Boot (API Gateway, port 8080), FastAPI (internal-only, port 8000), PostgreSQL (metadata), ChromaDB (VectorDB dev), Redis (Celery), and Vue.js/Nginx (frontend, port 3000).

문제·기회

No response

제안 내용

No response

완료 기준(AC)

  • docker-compose.yml defines 6 services: postgres, redis, chromadb, backend, ai-service, frontend
  • Custom Docker network gaji-network for inter-service communication
  • PostgreSQL volume persistence: postgres-data:/var/lib/postgresql/data
  • ChromaDB volume persistence: chromadb-data:/chroma/chroma (VectorDB for dev)
  • Redis for Celery task queue (novel ingestion, character extraction)
  • Environment variables managed via .env file (not hardcoded in compose)
  • Spring Boot (API Gateway) accessible at http://localhost:8080
  • FastAPI (internal-only) accessible at http://ai-service:8000 (Docker network ONLY)
  • ChromaDB accessible at http://localhost:8001 (dev only)
  • Vue.js/Nginx accessible at http://localhost:3000
  • PostgreSQL accessible at localhost:5432
  • Redis accessible at localhost:6379
  • Health check probes configured for all services
  • Services start in correct order with depends_on conditions
  • Hot reload enabled for development:
    • Backend: Spring DevTools
    • AI Service: uvicorn --reload
    • Frontend: Vite HMR
  • docker-compose up brings up entire stack in < 3 minutes
  • FastAPI NOT exposed externally (Pattern B: internal network only)

관련 참고자료

No response

관련 이슈·블로커

No response

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions