qmp-testing-suite/kafka-stack/docker-compose.yml

128 lines
3.9 KiB
YAML
Executable File

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"