version: '3' services: frontend: build: ./frontend ports: - "80:80" zookeeper: image: confluentinc/cp-zookeeper:latest environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ports: - 22181:2181 kafka: image: confluentinc/cp-kafka:latest container_name: kafka-broker depends_on: - zookeeper ports: - 29092:29092 environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-broker:9092,PLAINTEXT_HOST://localhost:29092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 mongodb: container_name: mongo-db image: mongo:6.0 volumes: - ~/mongo:/data/db ports: - "27017:27017" healthcheck: test: exit 0 order-service: build: ./order-service ports: - "8080:8080" depends_on: mongodb: condition: service_healthy inventory-service: build: ./inventory-service ports: - "8081:8081" depends_on: mongodb: condition: service_healthy shipping-service: build: ./shipping-service ports: - "8082:8082" depends_on: mongodb: condition: service_healthy