--- version: '3' services: zookeeper: image: confluentinc/cp-zookeeper:5.2.1 container_name: zookeeper networks: - mesh environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka: image: confluentinc/cp-enterprise-kafka:5.2.1 container_name: kafka networks: - mesh depends_on: - zookeeper ports: - 9092:9092 environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true" KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 100 CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: kafka:29092 CONFLUENT_METRICS_REPORTER_ZOOKEEPER_CONNECT: zookeeper:2181 CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1 CONFLUENT_METRICS_ENABLE: 'true' CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous' volumes: - ./scripts:/scripts schema-registry: image: confluentinc/cp-schema-registry:5.2.1 networks: - mesh depends_on: - zookeeper - kafka environment: SCHEMA_REGISTRY_HOST_NAME: schema-registry SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: zookeeper:2181 kafka-connect-cp: image: confluentinc/cp-kafka-connect:5.2.1 networks: - mesh depends_on: - zookeeper - kafka - schema-registry ports: - 18083:18083 environment: CONNECT_BOOTSTRAP_SERVERS: "kafka:29092" CONNECT_REST_PORT: 18083 CONNECT_GROUP_ID: kafka-connect-cp CONNECT_CONFIG_STORAGE_TOPIC: docker-kafka-connect-cp-configs CONNECT_OFFSET_STORAGE_TOPIC: docker-kafka-connect-cp-offsets CONNECT_STATUS_STORAGE_TOPIC: docker-kafka-connect-cp-status CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081' CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081' CONNECT_INTERNAL_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter" CONNECT_INTERNAL_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter" CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect-cp" CONNECT_LOG4J_ROOT_LOGLEVEL: "INFO" CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=WARN,org.reflections=ERROR" CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: "1" CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: "1" CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: "1" CONNECT_PLUGIN_PATH: '/usr/share/java' volumes: - ./scripts:/scripts api-gateway-app: build: apps/api-gateway-service container_name: api-gateway-service networks: - mesh ports: - "8080:8080" environment: PLAY_HTTP_PORT: 8080 depends_on: - consumers-app - payments-app consumers-app: build: apps/customers-service container_name: customers-service networks: - mesh ports: - "9000:9000" environment: PLAY_HTTP_PORT: 9000 depends_on: - kafka payments-app: build: apps/payments-service container_name: payments-service networks: - mesh ports: - "9001:9001" environment: PLAY_HTTP_PORT: 9001 depends_on: - kafka # Other systems elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.3.0 ports: - 9200:9200 environment: xpack.security.enabled: "false" ES_JAVA_OPTS: "-Xms1g -Xmx1g" volumes: - $PWD/scripts:/scripts kibana: image: docker.elastic.co/kibana/kibana:6.3.0 depends_on: - elasticsearch ports: - 5601:5601 environment: xpack.security.enabled: "false" discovery.type: "single-node" networks: mesh: driver: bridge #external: true