version: '2.3' services: zookeeper: image: "registry-app.eng.qops.net:5001/core-platform/zookeeper:${ZOOKEEPER_VERSION:-0.1.4}" container_name: "core-zookeeper" healthcheck: test: ["CMD", "echo", "ruok", "|", "nc", "core-zookeeper", "2181"] interval: 5s timeout: 10s retries: 5 ports: - "2181:2181" environment: - "ZOO_ENSEMBLE_HOST_LIST=zk1" kafka: image: "registry-app.eng.qops.net:5001/core-platform/kafka:${KAFKA_VERSION:-0.2.0}" container_name: "core-kafka" depends_on: zookeeper: condition: service_healthy healthcheck: test: ["CMD", "grep", "KafkaServer id=", "/opt/qualtrics/kafka/logs/server.log"] interval: 5s timeout: 10s retries: 12 ports: - "9092:9092" - "8092:8092" environment: - "KAFKA_CONFIG_PORT=9092" - "KAFKA_CONFIG_BROKER_ID=1" - "KAFKA_HTTP_HEALTH_PORT=8092" - "KAFKA_CONFIG_ZOOKEEPER_CONNECT=core-zookeeper:2181" - "KAFKA_CONFIG_HOST_NAME=core-kafka" - "KAFKA_ZOO_CHROOT=kafka/local" - "KAFKA_CREATE_TOPICS=${KAFKA_CREATE_TOPICS}" schema-registry: image: "registry-app.eng.qops.net:5001/core-platform/schema-registry:${SCHEMA_REGISTRY_VERSION:-0.2.1}" container_name: "qmp-schema-registry" depends_on: zookeeper: condition: service_healthy kafka: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:8081"] interval: 5s timeout: 10s retries: 5 ports: - "8081:8081" environment: - "SCHEMA_REGISTRY_PORT=8081" - "SCHEMA_REGISTRY_CONFIG_KAFKASTORE_CONNECTION_URL=core-zookeeper:2181" - "SCHEMA_REGISTRY_CONFIG_KAFKASTORE_TOPIC_REPLICATION_FACTOR=1" - "SCHEMA_REGISTRY_CONFIG_DEBUG=true" - "SCHEMA_REGISTRY_CONFIG_ACCESS_CONTROL_ALLOW_METHODS=GET,POST,PUT,OPTIONS" - "SCHEMA_REGISTRY_CONFIG_ACCESS_CONTROL_ALLOW_ORIGIN=*" - "SCHEMA_REGISTRY_ZOO_CHROOT=kafka/local" schema-registry-ui: image: "registry-app.eng.qops.net:5001/core-platform/schema-registry-ui:${SCHEMA_REGISTRY_UI_VERSION:-0.1.0}" container_name: "qmp-schema-registry-ui" depends_on: schema-registry: condition: service_healthy ports: - "8000:8000" kafka-manager: image: "registry-app.eng.qops.net:5001/core-platform/kafka-manager:${KAFKA_MANAGER_VERSION:-0.1.5}" container_name: "core-kafka-manager" depends_on: zookeeper: condition: service_healthy kafka: condition: service_healthy ports: - "9000:9000" environment: - "ZK_HOSTS=core-zookeeper:2181/kafka/local" - "KAFKA_MANAGER_AUTH_ENABLED=false" - "APPLICATION_SECRET=letmein" qmp-tool: image: "registry-app.eng.qops.net:5001/core-platform/qmp-tool:${QMP_TOOL_VERSION:-1.1.0}" container_name: "qmp-tool" depends_on: schema-registry: condition: service_healthy environment: - "SCHEMA_REGISTRY_URL=qmp-schema-registry:8081" - "COMMAND=schema-management" volumes: - "${SCHEMAS_LOCATION:-./}:/opt/qualtrics/qmp/data" kafka-rest-proxy: image: "confluentinc/cp-kafka-rest" container_name: "kafka-rest-proxy" depends_on: kafka: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:8082"] interval: 5s timeout: 10s retries: 5 ports: - "8082:8082" environment: - "KAFKA_REST_ZOOKEEPER_CONNECT=${ZK_CONNECT:-core-zookeeper:2181/kafka/local}" - "KAFKA_REST_SCHEMA_REGISTRY_URL=${AVSC_CONNECT:-qmp-schema-registry:8081}" - "KAFKA_REST_HOST_NAME=localhost" - "KAFKA_REST_LISTENERS=http://0.0.0.0:8082" kafka-topics-ui: image: "landoop/kafka-topics-ui" container_name: "kafka-topics-ui" depends_on: kafka-rest-proxy: condition: service_healthy ports: - "8083:8000" environment: - "KAFKA_REST_PROXY_URL=http://kafka-rest-proxy:8082"