version: "3.9" services: db: image: postgres:16-alpine environment: POSTGRES_DB: licensemanager POSTGRES_USER: licensemanager POSTGRES_PASSWORD: licensemanager123 ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U licensemanager"] interval: 5s timeout: 5s retries: 5 app: build: context: . dockerfile: Dockerfile ports: - "8080:8080" environment: PORT: "8080" DB_HOST: db DB_PORT: "5432" DB_USER: licensemanager DB_PASSWORD: licensemanager123 DB_NAME: licensemanager JWT_SECRET: change-this-to-a-long-random-secret-in-production MAIL_HOST: smtp.zoho.com MAIL_PORT: "587" MAIL_USERNAME: "" MAIL_PASSWORD: "" depends_on: db: condition: service_healthy restart: unless-stopped volumes: pgdata: