services: db: image: postgres:16-alpine container_name: cannamanage-db environment: POSTGRES_DB: cannamanage POSTGRES_USER: cannamanage POSTGRES_PASSWORD: cannamanage_dev ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U cannamanage"] interval: 5s timeout: 3s retries: 5 backend: build: context: . dockerfile: Dockerfile.backend container_name: cannamanage-backend ports: - "8080:8080" environment: SPRING_PROFILES_ACTIVE: docker SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/cannamanage SPRING_DATASOURCE_USERNAME: cannamanage SPRING_DATASOURCE_PASSWORD: cannamanage_dev CANNAMANAGE_SECURITY_JWT_SECRET: docker-dev-secret-key-minimum-32-characters-long-for-hmac depends_on: db: condition: service_healthy healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080/actuator/health"] interval: 10s timeout: 5s retries: 5 start_period: 30s frontend: build: context: ./cannamanage-frontend dockerfile: Dockerfile container_name: cannamanage-frontend ports: - "3000:3000" environment: NEXTAUTH_URL: http://localhost:3000 NEXTAUTH_SECRET: docker-dev-nextauth-secret-minimum-32chars BACKEND_URL: http://backend:8080 AUTH_URL: http://localhost:3000 depends_on: backend: condition: service_healthy volumes: pgdata: