networks: perfice: driver: bridge services: auth: image: auth:latest container_name: auth environment: GRPC_PORT: 5001 HTTP_PORT: 8081 MONGO_URL: mongodb://localhost:27017 JWT_SECRET: supersecret KAFKA_URL: kafka:9092 SENTRY_DSN: https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@XXXXXXX.ingest.us.sentry.io/XXXXXXXXXXXXXXXX BACKEND_BASE_URL: https://backend.com APP_BASE_URL: https://localhost/new networks: - perfice restart: unless-stopped sync: image: sync:latest container_name: sync environment: PORT: 8082 MONGO_URL: mongodb://localhost:27017 AUTH_GRPC_URL: auth:5001 KAFKA_URL: kafka:9092 SENTRY_DSN: https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@XXXXXXX.ingest.us.sentry.io/XXXXXXXXXXXXXXXX networks: - perfice depends_on: auth: condition: service_started kafka: condition: service_healthy restart: unless-stopped gateway: image: gateway:latest container_name: gateway ports: - "3000:3000" environment: AUTH_GRPC_URL: auth:5001 AUTH_HTTP_URL: http://auth:8081 SYNC_URL: http://sync:8082 INTEGRATION_URL: http://integration:8080 PORT: 3000 SENTRY_DSN: https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@XXXXXXX.ingest.us.sentry.io/XXXXXXXXXXXXXXXX networks: - perfice restart: unless-stopped integration: image: integration:latest container_name: integration environment: MONGO_URL: mongodb://localhost:27017 PORT: 8080 CALLBACK_URL_BASE: http://localhost:3000 AUTH_GRPC_URL: auth:5001 KAFKA_URL: kafka:9092 SENTRY_DSN: https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@XXXXXXX.ingest.us.sentry.io/XXXXXXXXXXXXXXXX ENCRYPTION_KEY: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX networks: - perfice depends_on: auth: condition: service_started kafka: condition: service_healthy restart: unless-stopped kafka: image: apache/kafka:latest container_name: kafka environment: KAFKA_KRAFT_MODE: 'true' KAFKA_PROCESS_ROLES: 'broker,controller' KAFKA_NODE_ID: 1 KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER' KAFKA_LISTENERS: 'PLAINTEXT://:9092,CONTROLLER://:9093' KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://kafka:9092' KAFKA_NUM_PARTITIONS: 1 KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true' KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka:9093' KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_LOG_RETENTION_MS: 60000 KAFKA_SEGMENT_MS: 60000 KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 30000 networks: - perfice healthcheck: test: [ "CMD", "/opt/kafka/bin/kafka-topics.sh", "--bootstrap-server", "localhost:9092", "--list" ] interval: 5s timeout: 5s retries: 5 start_period: 15s restart: unless-stopped