version: '3.8' services: postgres: image: postgres:16-alpine environment: POSTGRES_DB: kooltap POSTGRES_USER: kooltap POSTGRES_PASSWORD: kooltap ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U kooltap"] interval: 5s timeout: 5s retries: 5 networks: - kooltap-net api: build: context: . dockerfile: Dockerfile target: api ports: - "3001:3001" environment: - DATABASE_URL=postgresql://kooltap:kooltap@postgres:5432/kooltap - JWT_SECRET=dev-jwt-secret-change-in-production - PORT=3001 - CORS_ORIGIN=http://localhost:3000 depends_on: postgres: condition: service_healthy networks: - kooltap-net dashboard: build: context: . dockerfile: Dockerfile target: dashboard ports: - "3000:3000" environment: - NEXT_PUBLIC_API_URL=http://localhost:3001/api/v1 depends_on: - api networks: - kooltap-net volumes: pgdata: networks: kooltap-net: driver: bridge