diff --git a/docker/docker-compose.prod.yml b/docker/docker-compose.prod.yml index 8c5f8e8..dfb5fc1 100644 --- a/docker/docker-compose.prod.yml +++ b/docker/docker-compose.prod.yml @@ -1,5 +1,14 @@ -version: "2" - +version: "2.2" + +volumes: + metadata_data: {} + middle_var: {} + historical_var: {} + broker_var: {} + coordinator_var: {} + router_var: {} + druid_shared: {} + services: app: image: pathogen/monolith:latest @@ -9,9 +18,17 @@ services: env_file: - ../stack.env volumes_from: - - tmp + - tmp depends_on: - - db + broker: + condition: service_started + kafka: + condition: service_healthy + tmp: + condition: service_started + redis: + condition: service_healthy + # - db threshold: image: pathogen/threshold:latest @@ -29,47 +46,219 @@ services: - ../stack.env volumes_from: - tmp + depends_on: + tmp: + condition: service_started + redis: + condition: service_healthy - db: - image: manticoresearch/manticore:latest - restart: always + # db: + #image: pathogen/manticore:kibana + # image: manticoresearch/manticore:latest + #build: + # context: ./docker/manticore + # args: + # DEV: 1 + # restart: always + + + turnilo: + container_name: turnilo + image: uchhatre/turnilo:latest ports: - - 9308 - - 9312 - - 9306 - ulimits: - nproc: 65535 - nofile: - soft: 65535 - hard: 65535 - memlock: - soft: -1 - hard: -1 + - 9093:9090 environment: - - MCL=1 - volumes: - - /opt/docker/pathogen/monolith/prod:/var/lib/manticore - - ${PORTAINER_GIT_DIR}/docker/manticore.conf:/etc/manticoresearch/manticore.conf + - DRUID_BROKER_URL=http://broker:8082 + depends_on: + - broker + metabase: + container_name: metabase + image: metabase/metabase:latest + ports: + - 3001:3000 + depends_on: + - broker + + postgres: + container_name: postgres + image: postgres:latest + volumes: + - metadata_data:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD=FoolishPassword + - POSTGRES_USER=druid + - POSTGRES_DB=druid + + # Need 3.5 or later for container nodes + zookeeper: + container_name: zookeeper + image: zookeeper:3.5 + ports: + - "2181:2181" + environment: + - ZOO_MY_ID=1 + + kafka: + image: bitnami/kafka + depends_on: + - zookeeper + - broker + ports: + - 29092:29092 + - 9092:9092 + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 + #KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + ALLOW_PLAINTEXT_LISTENER: yes + # healthcheck: + # test: ["CMD-SHELL", "kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --topic main --describe"] + # interval: 2s + # timeout: 2s + # retries: 15 + healthcheck: + test: ["CMD", "kafka-topics.sh", "--list", "--bootstrap-server", "kafka:9092"] + start_period: 15s + interval: 2s + timeout: 5s + retries: 30 + + coordinator: + image: apache/druid:0.23.0 + container_name: coordinator + volumes: + - druid_shared:/opt/shared + - coordinator_var:/opt/druid/var + depends_on: + - zookeeper + - postgres + ports: + - "8081:8081" + command: + - coordinator + env_file: + - environment + + broker: + image: apache/druid:0.23.0 + container_name: broker + volumes: + - broker_var:/opt/druid/var + depends_on: + - zookeeper + - postgres + - coordinator + ports: + - "8082:8082" + command: + - broker + env_file: + - environment + + historical: + image: apache/druid:0.23.0 + container_name: historical + volumes: + - druid_shared:/opt/shared + - historical_var:/opt/druid/var + depends_on: + - zookeeper + - postgres + - coordinator + ports: + - "8083:8083" + command: + - historical + env_file: + - environment + + middlemanager: + image: apache/druid:0.23.0 + container_name: middlemanager + volumes: + - druid_shared:/opt/shared + - middle_var:/opt/druid/var + depends_on: + - zookeeper + - postgres + - coordinator + ports: + - "8091:8091" + - "8100-8105:8100-8105" + command: + - middleManager + env_file: + - environment + + router: + image: apache/druid:0.23.0 + container_name: router + volumes: + - router_var:/opt/druid/var + depends_on: + - zookeeper + - postgres + - coordinator + ports: + - "8888:8888" + command: + - router + env_file: + - environment + + # db: + # #image: pathogen/manticore:kibana + # image: manticoresearch/manticore:dev + # #build: + # # context: ./docker/manticore + # # args: + # # DEV: 1 + # restart: always + # ports: + # - 9308 + # - 9312 + # - 9306 + # ulimits: + # nproc: 65535 + # nofile: + # soft: 65535 + # hard: 65535 + # memlock: + # soft: -1 + # hard: -1 + # environment: + # - MCL=1 + # volumes: + # - ./docker/data:/var/lib/manticore + # - ./docker/manticore.conf:/etc/manticoresearch/manticore.conf tmp: image: busybox command: chmod -R 777 /var/run/redis + volumes: + - /var/run/redis + + redis: + image: redis + command: redis-server /etc/redis.conf ulimits: nproc: 65535 nofile: soft: 65535 hard: 65535 volumes: - - /var/run/redis - - redis: - image: redis - command: redis-server /etc/redis.conf - volumes: - - ${PORTAINER_GIT_DIR}/docker/redis.conf:/etc/redis.conf - volumes_from: - - tmp + - ${PORTAINER_GIT_DIR}/docker/redis.conf:/etc/redis.conf + volumes_from: + - tmp + healthcheck: + test: "redis-cli -s /var/run/redis/redis.sock ping" + interval: 2s + timeout: 2s + retries: 15 networks: default: