services: db: image: postgres:16-alpine container_name: product-postgres restart: always environment: - POSTGRES_USER=roma - POSTGRES_PASSWORD=admin - POSTGRES_DB=study ports: - ":5432" volumes: - pgdata:/var/lib/postgresql/data - ./init.sql:/docker-entrypoint-initdb.d/init.sql healthcheck: test: ["CMD-SHELL", "pg_isready"] interval: 5s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: product-redis restart: always ports: - ":6379" volumes: - redis-data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 gateway: build: context: . dockerfile: gateway/Dockerfile container_name: gateway restart: on-failure ports: - "9999:1984/udp" - ":1488" environment: - GATEWAY_CLIENT_PORT=1984 - GATEWAY_SERVER_PORT=1488 - AUTH_SERVICE_URL=http://auth-service:5252/auth - PUBLIC_KEY=-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApa3QUQLUcLyZn0uQ7VGTpafqWPZ1kYaOV4M8etcvv+6pvi7Za2QPIgKQiRK/VfGcJBU8sKXMXCNr091N+0F9/Myjy+wv/QiC7AndHHW4qXcG5x5wek2urolzXag3EEz3oOD+TfM7r8mV2M4K6OmrhLD+T2mdeBRSF9tIrvv+9cEsiWBaXQestDL3n+cGdd5+LS+ZjUWDOO1rYlESlt4g13VQHI0EmeG9TvrK9SkNmseFbgGBhq3B+8R0YMXjSVvsN2VtmOGLeAqJ9rfEMItp73s/2MFjlaUvnxQLHMS/11vhy5vTltdhmaLLEA/jCLQcNDR74ILpe/f469IdGpnSJwIDAQAB-----END PUBLIC KEY----- stdin_open: true tty: true cache-warmer: build: context: . dockerfile: product-service/Dockerfile entrypoint: ["java", "-cp", "app.jar", "utility.CacheWarmer"] depends_on: db: condition: service_healthy redis: condition: service_healthy environment: - DB_USER=roma - DB_PASS=admin - DB_HOST=db - DB_PORT=5432 - DB_NAME=study - REDIS_HOST=redis - REDIS_PORT=6379 product-service: build: context: . dockerfile: product-service/Dockerfile restart: on-failure depends_on: cache-warmer: condition: service_completed_successfully environment: - DB_USER=roma - DB_PASS=admin - DB_HOST=db - DB_PORT=5432 - DB_NAME=study - REDIS_HOST=redis - REDIS_PORT=6379 - GATEWAY_HOST=gateway - GATEWAY_SERVER_PORT=1488 stdin_open: true tty: true auth-service: build: auth-service/. restart: on-failure ports: - ":5252" environment: - DB_USER=roma - DB_PASS=admin - DB_HOST=db - DB_PORT=5432 - DB_NAME=study stdin_open: true tty: true volumes: pgdata: redis-data: