X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=docker%2Fdocker-compose.yml;h=2991f8112ba84ca337072d0fba38dcfcf0a8b404;hb=aafac6f928c97f8587a683cecd7c365940c5e0de;hp=007f9237e4f7897cd12933294bcfb0bea98c319a;hpb=ae395a9edcd0551a9a0cf0b690d477f9be28aa3d;p=demos%2Fkafka%2Ftraining diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 007f923..2991f81 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -69,17 +69,74 @@ services: depends_on: - zookeeper + schema-registry: + image: confluentinc/cp-schema-registry:7.5.1 + environment: + SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka-1:9092,kafka-2:9092,kafka-3:9092 + SCHEMA_REGISTRY_HOST_NAME: schema-registry + SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8085 + SCHEMA_REGISTRY_LOG4J_ROOT_LOGLEVEL: INFO + ports: + - 8085:8085 + depends_on: + - kafka-1 + - kafka-2 + - kafka-3 + + connect: + image: confluentinc/cp-kafka-connect:7.5.1 + environment: + CONNECT_BOOTSTRAP_SERVERS: kafka-1:9092,kafka-2:9092,kafka-3:9092 + CONNECT_REST_PORT: 8083 + CONNECT_REST_LISTENERS: http://0.0.0.0:8083 + CONNECT_REST_ADVERTISED_HOST_NAME: connect + CONNECT_CONFIG_STORAGE_TOPIC: __connect-config + CONNECT_OFFSET_STORAGE_TOPIC: __connect-offsets + CONNECT_STATUS_STORAGE_TOPIC: __connect-status + CONNECT_GROUP_ID: kafka-connect + CONNECT_KEY_CONVERTER_SCHEMAS_ENABLE: "true" + CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter + CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8085 + CONNECT_VALUE_CONVERTER_SCHEMAS_ENABLE: "true" + CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter + CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8085 + CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter + CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter + CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1 + CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1 + CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1 + CONNECT_PLUGIN_PATH: /usr/share/java/ + ports: + - 8083:8083 + depends_on: + - schema-registry + setup: image: juplo/toolbox - command: > - bash -c " - kafka-topics --bootstrap-server kafka:9092 --delete --if-exists --topic test - kafka-topics --bootstrap-server kafka:9092 --create --topic test --partitions 2 --replication-factor 3 --config min.insync.replicas=2 - echo Das Topic \'test\' wurde erfolgreich angelegt: - kafka-topics --bootstrap-server kafka:9092 --describe --topic test - echo \'docker-compose restart -t0 setup\' löscht das Topic und legt es neu an - sleep infinity - " + command: + - bash + - -c + - | + if [ -e INITIALIZED ] + then + echo -n Bereits konfiguriert: + cat INITIALIZED + kafka-topics --bootstrap-server kafka:9092 --describe --topic test + else + kafka-topics --bootstrap-server kafka:9092 \ + --delete \ + --if-exists \ + --topic test + kafka-topics --bootstrap-server kafka:9092 \ + --create \ + --topic test \ + --partitions 2 \ + --replication-factor 3 \ + --config min.insync.replicas=2 \ + && echo Das Topic \'test\' wurde erfolgreich angelegt: \ + && kafka-topics --bootstrap-server kafka:9092 --describe --topic test \ + && date > INITIALIZED + fi depends_on: - kafka-1 - kafka-2 @@ -96,6 +153,11 @@ services: docker-kafka-server: properties: bootstrap.servers: "kafka:9092" + schema-registry: + url: "http://schema-registry:8085" + connect: + - name: "connect" + url: "http://connect:8083" depends_on: - kafka-1 - kafka-2