version: '3' services: zookeeper: image: zookeeper:3.4.13 ports: - 2181:2181 restart: always kafka: image: confluentinc/cp-kafka:5.3.1 ports: - 9093:9093 environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_LISTENERS: INTERNAL://0.0.0.0:9092,PLAINTEXT://0.0.0.0:9093 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:9092,PLAINTEXT://localhost:9093 KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false" depends_on: - zookeeper restart: always schema-registry: image: confluentinc/cp-schema-registry:5.3.1 hostname: schema-registry ports: - "8081:8081" environment: SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: PLAINTEXT://kafka:9092 SCHEMA_REGISTRY_HOST_NAME: schema-registry SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 depends_on: - zookeeper - kafka rest: image: confluentinc/cp-kafka-rest:5.3.1 hostname: rest-proxy ports: - "8082:8082" environment: KAFKA_REST_LISTENERS: http://0.0.0.0:8082/ KAFKA_REST_SCHEMA_REGISTRY_URL: http://schema-registry:8081/ KAFKA_REST_HOST_NAME: rest-proxy KAFKA_REST_BOOTSTRAP_SERVERS: PLAINTEXT://kafka:9092 KAFKA_REST_ACCESS_CONTROL_ALLOW_ORIGIN: "*" KAFKA_REST_ACCESS_CONTROL_ALLOW_METHODS: "GET,POST,PUT,DELETE,OPTIONS,HEAD" depends_on: - zookeeper - kafka - schema-registry