version: '3.9' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.13.1 container_name: elasticsearch environment: - "discovery.type=single-node" expose: - "9200" ports: - "9200:9200" kibana: image: docker.elastic.co/kibana/kibana:7.13.1 ports: - "5601:5601" fluentd: build: ./fluentd volumes: - ./conf:/fluentd/etc - ./logs:/app ports: - "24224:24224" - "24224:24224/udp" - "9880:9880" zookeeper: image: confluentinc/cp-zookeeper:7.0.0 hostname: zookeeper container_name: zookeeper environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 broker: image: confluentinc/cp-kafka:7.0.0 container_name: broker ports: - "9092:9092" depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 app: build: ./app ports: - 5000:5001 volumes: - ./logs:/app/logs logger: image: alpine command: ['/bin/sh', '-c', 'chmod +x /app/logger.sh && /app/logger.sh' ] volumes: - ./scripts:/app consumer: build: ./consumer environment: - SLACK_BOT_TOKEN=