services: db: image: postgres:15-alpine container_name: notas_postgres restart: unless-stopped env_file: - .env environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 5 app: build: context: . dockerfile: Dockerfile container_name: notas_api restart: unless-stopped depends_on: db: condition: service_healthy env_file: - .env environment: NODE_ENV: ${NODE_ENV:-production} APP_PORT: ${APP_PORT:-3000} DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} JWT_SECRET: ${JWT_SECRET} DEFAULT_USER: ${DEFAULT_USER:-admin} DEFAULT_PASS: ${DEFAULT_PASS:-supersecreta123} ports: - "${HOST_PORT:-3005}:3000" volumes: db_data: