version: '3.7' services: yanlib.httpapi.host: image: yanlib:latest container_name: yanlib build: context: . dockerfile: ./Dockerfile networks: - yan setup: profiles: - setup build: context: setup/ args: ELASTIC_VERSION: ${ELASTIC_VERSION} init: true volumes: - ./setup/entrypoint.sh:/entrypoint.sh:ro,Z - ./setup/lib.sh:/lib.sh:ro,Z - ./setup/roles:/roles:ro,Z environment: ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-} KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-} BEATS_SYSTEM_PASSWORD: ${BEATS_SYSTEM_PASSWORD:-} LOGSTASH_INTERNAL_PASSWORD: ${LOGSTASH_INTERNAL_PASSWORD:-} METRICBEAT_INTERNAL_PASSWORD: ${METRICBEAT_INTERNAL_PASSWORD:-} FILEBEAT_INTERNAL_PASSWORD: ${FILEBEAT_INTERNAL_PASSWORD:-} HEARTBEAT_INTERNAL_PASSWORD: ${HEARTBEAT_INTERNAL_PASSWORD:-} MONITORING_INTERNAL_PASSWORD: ${MONITORING_INTERNAL_PASSWORD:-} RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-} KAFKA_DEFAULT_USERS: ${KAFKA_DEFAULT_USERS:-} KAFKA_DEFAULT_PASSWORDS: ${KAFKA_DEFAULT_PASSWORDS:-} networks: - yan depends_on: - elasticsearch elasticsearch: build: context: elasticsearch/ args: ELASTIC_VERSION: ${ELASTIC_VERSION} container_name: elasticsearch volumes: - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,Z - elasticsearch:/usr/share/elasticsearch/data:Z ports: - 9200:9200 - 9300:9300 environment: node.name: elasticsearch ES_JAVA_OPTS: -Xms512m -Xmx512m # Bootstrap password. # Used to initialize the keystore during the initial startup of # Elasticsearch. Ignored on subsequent runs. ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-} # Use single node discovery in order to disable production mode and avoid bootstrap checks. # see: https://www.elastic.co/guide/en/elasticsearch/reference/7.17/bootstrap-checks.html discovery.type: single-node networks: - yan restart: unless-stopped logstash: build: context: logstash/ args: ELASTIC_VERSION: ${ELASTIC_VERSION} container_name: logstash volumes: - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro,Z - ./logstash/pipeline:/usr/share/logstash/pipeline:ro,Z - ./app/yanlib/host/YANLib.HttpApi.Host/Logs:/usr/share/logstash/logs:ro,Z ports: - 9600:9600 - 5044:5044 - 50000:50000/tcp - 50000:50000/udp environment: LS_JAVA_OPTS: -Xms256m -Xmx256m LOGSTASH_INTERNAL_PASSWORD: ${LOGSTASH_INTERNAL_PASSWORD:-} networks: - yan depends_on: - elasticsearch restart: unless-stopped kibana: build: context: kibana/ args: ELASTIC_VERSION: ${ELASTIC_VERSION} container_name: kibana volumes: - ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro,Z ports: - 5601:5601 environment: KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-} networks: - yan depends_on: - elasticsearch restart: unless-stopped rabbitmq: image: rabbitmq:3-management container_name: rabbitmq ports: - 5672:5672 - 15672:15672 environment: RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-} networks: - yan restart: unless-stopped zookeeper: image: bitnami/zookeeper:3.6 container_name: zookeeper ports: - 2181:2181 environment: ZOO_ENABLE_AUTH: "yes" ZOO_SERVER_USERS: ${KAFKA_DEFAULT_USERS:-} ZOO_SERVER_PASSWORDS: ${KAFKA_DEFAULT_PASSWORDS:-} ZOO_CLIENT_USER: ${KAFKA_DEFAULT_USERS:-} ZOO_CLIENT_PASSWORD: ${KAFKA_DEFAULT_PASSWORDS:-} networks: - yan restart: unless-stopped kafka: image: bitnami/kafka:2.8.1 container_name: kafka ports: - 9092:9092 - 9093:9093 environment: BITNAMI_DEBUG: "yes" ALLOW_PLAINTEXT_LISTENER: "no" KAFKA_BROKER_ID: 1 KAFKA_ENABLE_KRAFT: "no" KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CFG_LISTENERS: INTERNAL://:9092,CLIENT://:9093 KAFKA_CFG_ADVERTISED_LISTENERS: INTERNAL://kafka:9092,CLIENT://localhost:9093 KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL KAFKA_CFG_INTER_BROKER_LISTENER_NAME: CLIENT KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_PLAINTEXT KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN KAFKA_CLIENT_USERS: ${KAFKA_DEFAULT_USERS:-} KAFKA_CLIENT_PASSWORDS: ${KAFKA_DEFAULT_PASSWORDS:-} KAFKA_INTER_BROKER_USER: ${KAFKA_DEFAULT_USERS:-} KAFKA_INTER_BROKER_PASSWORD: ${KAFKA_DEFAULT_PASSWORDS:-} KAFKA_ZOOKEEPER_PROTOCOL: SASL KAFKA_ZOOKEEPER_USER: ${KAFKA_DEFAULT_USERS:-} KAFKA_ZOOKEEPER_PASSWORD: ${KAFKA_DEFAULT_PASSWORDS:-} networks: - yan depends_on: - zookeeper restart: unless-stopped kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafkaui ports: - 8080:8080 environment: KAFKA_CLUSTERS_0_NAME: local KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181 KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092 KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL: SASL_PLAINTEXT KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM: PLAIN KAFKA_CLUSTERS_0_PROPERTIES_CLIENT_DNS_LOOKUP: use_all_dns_ips KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG: "org.apache.kafka.common.security.plain.PlainLoginModule required username='${KAFKA_DEFAULT_USERS:-}' password='${KAFKA_DEFAULT_PASSWORDS:-}';" KAFKA_CLUSTERS_0_DISABLELOGDIRSCOLLECTION: "true" networks: - yan depends_on: - zookeeper - kafka restart: unless-stopped networks: yan: driver: bridge volumes: setup: elasticsearch: