--- version: '2' services: zookeeper: image: confluentinc/cp-zookeeper:7.0.0-1-ubi8 restart: always container_name: zookeeper ports: - 2181:2181 environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka: image: confluentinc/cp-enterprise-kafka:7.0.0-1-ubi8 restart: always container_name: kafka ports: - 9092:9092 environment: KAFKA_BROKER_ID: 101 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_METRIC_REPORTERS: "io.confluent.metrics.reporter.ConfluentMetricsReporter" KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false" KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_LOG_RETENTION_HOURS: 1 KAFKA_LOG_SEGMENT_BYTES: 536870912 KAFKA_LOG_RETENTION_BYTES: 536870912 CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: "kafka:9092" CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1 schema-registry: image: confluentinc/cp-schema-registry:7.0.0-1-ubi8 restart: always container_name: schema-registry ports: - "8081:8081" environment: SCHEMA_REGISTRY_HOST_NAME: schema-registry SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'kafka:9092' KAFKA_REST_CUB_KAFKA_TIMEOUT: 180 # https://github.com/confluentinc/cp-docker-images/issues/807 ksqldb-server: image: confluentinc/cp-ksqldb-server:7.0.0-1-ubi8 restart: always container_name: ksqldb-server ports: - "8088:8088" environment: KSQL_CONFIG_DIR: "/etc/ksql" KSQL_LOG4J_OPTS: "-Dlog4j.configuration=file:/etc/ksql/log4j-rolling.properties" KSQL_BOOTSTRAP_SERVERS: "kafka:9092" KSQL_HOST_NAME: ksqldb KSQL_APPLICATION_ID: "dev-class" KSQL_KSQL_CONNECT_URL: http://connect:8083/ KSQL_LISTENERS: "http://0.0.0.0:8088" KSQL_CACHE_MAX_BYTES_BUFFERING: 0 KSQL_KSQL_SCHEMA_REGISTRY_URL: "http://schema-registry:8081" KSQL_PRODUCER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor" KSQL_CONSUMER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor" KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: "true" KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: "true" postgres: image: postgres:11.2-alpine restart: always container_name: postgres volumes: - ./postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d ports: - 5432:5432 connect: image: confluentinc/cp-kafka-connect:7.0.0-1-ubi8 restart: always container_name: connect ports: - "8083:8083" environment: CONNECT_REST_PORT: 8083 CONNECT_BOOTSTRAP_SERVERS: kafka:9092 CONNECT_GROUP_ID: "connect" CONNECT_CONFIG_STORAGE_TOPIC: "connect-config" CONNECT_OFFSET_STORAGE_TOPIC: "connect-offsets" CONNECT_STATUS_STORAGE_TOPIC: "connect-status" CONNECT_REPLICATION_FACTOR: 1 CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1 CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1 CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1 CONNECT_KEY_CONVERTER: "org.apache.kafka.connect.storage.StringConverter" 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_PLUGIN_PATH: '/usr/share/java,/usr/share/confluent-hub-components/,/data/connect-jars' CONNECT_REST_ADVERTISED_HOST_NAME: "connect" CONNECT_PRODUCER_INTERCEPTOR_CLASSES: io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor CONNECT_CONSUMER_INTERCEPTOR_CLASSES: io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor control-center: image: confluentinc/cp-enterprise-control-center:7.0.0-1-ubi8 restart: always container_name: control-center ports: - "9021:9021" environment: CONTROL_CENTER_BOOTSTRAP_SERVERS: kafka:9092 CONTROL_CENTER_ZOOKEEPER_CONNECT: zookeeper:2181 CONTROL_CENTER_REPLICATION_FACTOR: 1 CONTROL_CENTER_MONITORING_INTERCEPTOR_TOPIC_REPLICATION: 1 CONTROL_CENTER_INTERNAL_TOPICS_REPLICATION: 1 CONTROL_CENTER_COMMAND_TOPIC_REPLICATION: 1 CONTROL_CENTER_METRICS_TOPIC_REPLICATION: 1 CONTROL_CENTER_STREAMS_NUM_STREAM_THREADS: 1 CONTROL_CENTER_STREAMS_CONSUMER_REQUEST_TIMEOUT_MS: "960032" CONTROL_CENTER_SCHEMA_REGISTRY_URL: "http://schema-registry:8081" CONTROL_CENTER_CONNECT_CONNECT_CLUSTER: "connect:8083" CONTROL_CENTER_KSQL_KSQLDB_URL: "http://ksqldb-server:8088" CONTROL_CENTER_UI_AUTOUPDATE_ENABLE: "false" create-topics: image: confluentinc/cp-enterprise-kafka:7.0.0-1-ubi8 container_name: create-topics command: > bash -c 'echo Waiting for Kafka to be ready... ; cub kafka-ready -b kafka:9092 1 300 ; echo Creating topics... ; kafka-topics --bootstrap-server kafka:9092 --create --topic _confluent-monitoring --partitions 12 --replication-factor 1 --config retention.ms=259200000 --config message.timestamp.type=LogAppendTime ; true' tools: image: cnfltraining/training-tools:6.0 restart: always hostname: tools container_name: tools restart: always volumes: - .:/root/confluent-streams/labs/using-ksql working_dir: /root/confluent-streams/labs/using-ksql command: /bin/bash tty: true