name: ${COMPOSE_PROJECT_NAME:-clickstream-data-platform} x-clickhouse-nofile: &clickhouse-nofile nofile: soft: 262144 hard: 262144 x-clickhouse-common: &clickhouse-common image: ${CLICKHOUSE_IMAGE:-clickhouse/clickhouse-server:26.3.17.56} restart: unless-stopped environment: # Стенд локальный: нодам нужен общий пользователь без пароля для Distributed. CLICKHOUSE_SKIP_USER_SETUP: "1" depends_on: clickhouse-keeper: condition: service_healthy ulimits: *clickhouse-nofile mem_limit: 1g healthcheck: test: ["CMD-SHELL", "clickhouse-client --host 127.0.0.1 --query 'SELECT 1' >/dev/null 2>&1"] interval: 5s timeout: 3s retries: 30 start_period: 10s services: clickhouse-keeper: image: ${CLICKHOUSE_IMAGE:-clickhouse/clickhouse-server:26.3.17.56} restart: unless-stopped user: clickhouse ulimits: *clickhouse-nofile entrypoint: - clickhouse - keeper - --config-file=/etc/clickhouse-keeper/keeper_config.xml volumes: - ./infra/clickhouse/keeper/keeper_config.xml:/etc/clickhouse-keeper/keeper_config.xml:ro - clickhouse_keeper_data:/var/lib/clickhouse mem_limit: 512m healthcheck: test: ["CMD-SHELL", "clickhouse keeper-client --host 127.0.0.1 --port 9181 --query ruok | grep -q imok"] interval: 5s timeout: 3s retries: 30 start_period: 10s # Инициатор DDL и будущее подключение Airflow. clickhouse-01: <<: *clickhouse-common ports: - "127.0.0.1:${CLICKHOUSE_01_HTTP_PORT:-28123}:8123" - "127.0.0.1:${CLICKHOUSE_01_TCP_PORT:-29000}:9000" volumes: - ./infra/clickhouse/config.d/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml:ro - ./infra/clickhouse/config.d/macros-01.xml:/etc/clickhouse-server/config.d/macros.xml:ro - clickhouse_01_data:/var/lib/clickhouse # Будущее подключение Superset. clickhouse-02: <<: *clickhouse-common ports: - "127.0.0.1:${CLICKHOUSE_02_HTTP_PORT:-28124}:8123" - "127.0.0.1:${CLICKHOUSE_02_TCP_PORT:-29001}:9000" volumes: - ./infra/clickhouse/config.d/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml:ro - ./infra/clickhouse/config.d/macros-02.xml:/etc/clickhouse-server/config.d/macros.xml:ro - clickhouse_02_data:/var/lib/clickhouse volumes: clickhouse_keeper_data: clickhouse_01_data: clickhouse_02_data: