version: "3.8" services: db: image: postgres:15-alpine container_name: bookhoard_db environment: POSTGRES_DB: bookhoard POSTGRES_USER: postgres POSTGRES_PASSWORD: ${DBPASS} volumes: - ./uploads:/app/uploads healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 3 app: build: context: . dockerfile: ./Dockerfile container_name: bookhoard environment: DATABASE_HOST: db DATABASE_PORT: 5432 DATABASE_USER: postgres DATABASE_PASSWORD: ${DBPASS} DATABASE_NAME: bookhoard JWT_SECRET: ${JWT_SECRET} SERVER_PORT: 8765 TEST_MODE: ${TEST_MODE:-false} RATE_LIMIT_ENABLED: ${RATE_LIMIT_ENABLED:-true} REQUESTS_PER_MINUTE: ${REQUESTS_PER_MINUTE:-10} ports: - "8765:8765" depends_on: db: condition: service_healthy volumes: - ./uploads:/app/uploads healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 3