version: '3.8' services: consul: image: hashicorp/consul:1.22 container_name: v2test-consul restart: unless-stopped ports: - "8500:8500" command: > agent -server -bootstrap-expect=1 -ui -client=0.0.0.0 -bind=0.0.0.0 -data-dir=/consul/data volumes: - consul-data:/consul/data redis: image: redis:7-alpine container_name: v2test-redis restart: unless-stopped ports: - "6379:6379" command: redis-server --requirepass "1qaz!QAZ" zookeeper: image: bitnami/zookeeper:3.9 container_name: v2test-zookeeper restart: unless-stopped ports: - "2181:2181" environment: ALLOW_ANONYMOUS_LOGIN: "yes" kafka: image: bitnami/kafka:3.6 container_name: v2test-kafka restart: unless-stopped ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: "broker,controller" KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: "1@localhost:9093" KAFKA_CFG_LISTENERS: "PLAINTEXT://:9092,CONTROLLER://:9093" KAFKA_CFG_ADVERTISED_LISTENERS: "PLAINTEXT://localhost:9092" KAFKA_CFG_CONTROLLER_LISTENER_NAMES: "CONTROLLER" KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: "PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT" KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: "true" depends_on: - zookeeper nginx: image: nginx:alpine container_name: v2test-nginx restart: unless-stopped ports: - "8090:80" extra_hosts: - "host.docker.internal:host-gateway" volumes: - ../../frontend:/data/cwos/frontend:ro - ../../nginx.frontend-local.conf:/etc/nginx/conf.d/default.conf:ro volumes: consul-data: