Sign inSign up

aperturedata/aperturedb-compose-distributed-cloud:0.19.14

Manifest digest

sha256:dbdc5e1c8c8c47fca0d1c5d2bc76ee3637d2bacc09e088e115bf14f8b4fde1d0

Last pushed

23 days by aliasadpoor

Type

Compose

Manifest digest

sha256:dbdc5e1c8c8c47fca0d1c5d2bc76ee3637d2bacc09e088e115bf14f8b4fde1d0

Compose file content

# aperturedb-compose version: 0.19.14

services:
  zoo1:
    image: zookeeper:3.9.6
    restart: always
    hostname: zoo1
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
      ZOO_TICK_TIME: 8000
      ZOO_CFG_EXTRA: extendedTypesEnabled=true
      ZOO_DATA_LOG_DIR: /data
    volumes:
      - zookeeper_zoo1_data:/data

  zoo2:
    image: zookeeper:3.9.6
    restart: always
    hostname: zoo2
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
      ZOO_TICK_TIME: 8000
      ZOO_CFG_EXTRA: extendedTypesEnabled=true
      ZOO_DATA_LOG_DIR: /data
    volumes:
      - zookeeper_zoo2_data:/data

  zoo3:
    image: zookeeper:3.9.6
    restart: always
    hostname: zoo3
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
      ZOO_TICK_TIME: 8000
      ZOO_CFG_EXTRA: extendedTypesEnabled=true
      ZOO_DATA_LOG_DIR: /data
    volumes:
      - zookeeper_zoo3_data:/data

  aperturedb0:
    image: aperturedata/aperturedb:v0.19.14
    restart: always
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    environment:
      ADB_STORAGE_TYPE: ${ADB_STORAGE_TYPE:?set ADB_STORAGE_TYPE (s3 or gs)}
      ADB_STORAGE_BUCKET_NAME: ${ADB_STORAGE_BUCKET_NAME:?set ADB_STORAGE_BUCKET_NAME}
      ADB_STORAGE_CREDENTIALS: ${ADB_STORAGE_CREDENTIALS:?set ADB_STORAGE_CREDENTIALS}
      ADB_ZK_SERVERS: "zoo1:2181,zoo2:2181,zoo3:2181"
      ADB_KVGD_DB_SIZE: "204800"
      ADB_DB_ROOT_PATH: "/aperturedb/db"
      ADB_LOG_PATH: "/aperturedb/logs"
      ADB_PORT: 55553
      ADB_MAX_SIMULTANEOUS_CLIENTS: 52
      ADB_FORCE_SSL: false
      ADB_TIMEOUT_RECEIVE: false
      ADB_MASTER_KEY: ${ADB_MASTER_KEY:-admin}
    volumes:
      - aperturedb_0_logs:/aperturedb/logs

  promtail0:
    profiles:
      - telemetry
    image: aperturedata/promtail:v0.19.14
    restart: always
    environment:
      POD_IP: aperturedb0
    volumes:
      - aperturedb_0_logs:/mnt/aperture

  aperturedb1:
    image: aperturedata/aperturedb:v0.19.14
    restart: always
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    environment:
      ADB_STORAGE_TYPE: ${ADB_STORAGE_TYPE:?set ADB_STORAGE_TYPE (s3 or gs)}
      ADB_STORAGE_BUCKET_NAME: ${ADB_STORAGE_BUCKET_NAME:?set ADB_STORAGE_BUCKET_NAME}
      ADB_STORAGE_CREDENTIALS: ${ADB_STORAGE_CREDENTIALS:?set ADB_STORAGE_CREDENTIALS}
      ADB_ZK_SERVERS: "zoo1:2181,zoo2:2181,zoo3:2181"
      ADB_KVGD_DB_SIZE: "204800"
      ADB_DB_ROOT_PATH: "/aperturedb/db"
      ADB_LOG_PATH: "/aperturedb/logs"
      ADB_PORT: 55553
      ADB_MAX_SIMULTANEOUS_CLIENTS: 52
      ADB_FORCE_SSL: false
      ADB_TIMEOUT_RECEIVE: false
      ADB_MASTER_KEY: ${ADB_MASTER_KEY:-admin}
    volumes:
      - aperturedb_1_logs:/aperturedb/logs

  promtail1:
    profiles:
      - telemetry
    image: aperturedata/promtail:v0.19.14
    restart: always
    environment:
      POD_IP: aperturedb1
    volumes:
      - aperturedb_1_logs:/mnt/aperture

  checkpointer:
    image: aperturedata/checkpointer:v0.19.14
    restart: always
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    environment:
      ADB_STORAGE_TYPE: ${ADB_STORAGE_TYPE:?set ADB_STORAGE_TYPE (s3 or gs)}
      ADB_STORAGE_BUCKET_NAME: ${ADB_STORAGE_BUCKET_NAME:?set ADB_STORAGE_BUCKET_NAME}
      ADB_STORAGE_CREDENTIALS: ${ADB_STORAGE_CREDENTIALS:?set ADB_STORAGE_CREDENTIALS}
      ADB_ZK_SERVERS: "zoo1:2181,zoo2:2181,zoo3:2181"
      ADB_KVGD_DB_SIZE: "204800"
      ADB_DB_ROOT_PATH: "/checkpointer/db"
      ADB_LOG_PATH: "/checkpointer/logs"
      ADB_LOG_LEVEL: 0
    volumes:
      - checkpointer_checkpointer_logs:/checkpointer/logs

  loki:
    profiles:
      - telemetry
    image: grafana/loki:3.7.8
    restart: always
    user: 0:0
    configs:
      - source: loki_config
        target: /etc/loki/local-config.yml
    volumes:
      - loki:/loki

  prometheus:
    profiles:
      - telemetry
    image: prom/prometheus:v3.15.0
    restart: always
    user: 0:0
    command: [ "--config.file=/etc/prometheus/prometheus.yml", "--storage.tsdb.path=/prometheus", "--storage.tsdb.retention.time=28d" ]
    configs:
      - source: prometheus_config
        target: /etc/prometheus/prometheus.yml
      - source: monitoring_password
        target: /etc/prometheus/auth/password
    volumes:
      - prometheus:/prometheus

  grafana:
    profiles:
      - telemetry
    image: aperturedata/grafana:v0.19.14
    restart: always
    user: 0:0
    environment:
      GF_SERVER_ROOT_URL: '%(protocol)s://%(domain)s:%(http_port)s/grafana/'
      GF_SERVER_SERVE_FROM_SUB_PATH: 'true'
    volumes:
      - grafana:/var/lib/grafana

  webui:
    image: aperturedata/webui:v0.19.14
    restart: always

  ca:
    image: alpine/openssl:3.5.9
    restart: on-failure
    command: req -x509 -newkey rsa:4096 -days 3650 -nodes -keyout /cert/tls.key -out /cert/tls.crt -subj "/C=US/O=ApertureData Inc./CN=localhost"
    volumes:
      - certificate_volume:/cert

  lenz:
    depends_on:
      ca:
        condition: service_completed_successfully
    image: aperturedata/lenz:v0.19.14
    ports:
      - ${GATEWAY:-}:55555:55551
    restart: always
    environment:
      LNZ_HEALTH_PORT: 58085
      LNZ_TCP_PORT: 55551
      LNZ_HTTP_PORT: 8080
      LNZ_ADB_BACKENDS: '["aperturedb0:55553", "aperturedb1:55553"]'
      LNZ_REPLICAS: 1
      LNZ_ADB_MAX_CONCURRENCY: 48
      LNZ_FORCE_SSL: false
      LNZ_CERTIFICATE_PATH: /etc/lenz/certificate/tls.crt
      LNZ_PRIVATE_KEY_PATH: /etc/lenz/certificate/tls.key
      LNZ_METRICS_PATH: /etc/lenz/metrics
      LNZ_DB_PATH: /etc/lenz/db
    configs:
      - source: monitoring_password
        target: /etc/lenz/metrics/password
      - source: telemetry_db_password
        target: /etc/lenz/db/password
    volumes:
      - certificate_volume:/etc/lenz/certificate

  nginx:
    depends_on:
      ca:
        condition: service_completed_successfully
    image: nginx:1.30.5
    restart: always
    ports:
      - ${GATEWAY:-}:80:80
      - ${GATEWAY:-}:443:443
    configs:
      - source: nginx_config
        target: /etc/nginx/conf.d/default.conf
    volumes:
      - certificate_volume:/etc/nginx/certificate

configs:
  nginx_config:
    content: |
      server {
        listen 80;
        listen 443 ssl;
        client_max_body_size 256m;
        ssl_certificate /etc/nginx/certificate/tls.crt;
        ssl_certificate_key /etc/nginx/certificate/tls.key;
        location / {
          proxy_pass http://webui;
        }
        location /api/ {
          proxy_pass http://lenz:8080;
        }
        location /grafana/ {
          resolver 127.0.0.11 valid=30s;
          set $$target_var http://grafana:3000;
          proxy_pass $$target_var;
          proxy_set_header Host $$host;
        }
      }

  loki_config:
    content: |
      auth_enabled: false

      server:
        http_listen_port: 3100

      common:
        path_prefix: /loki
        storage:
          filesystem:
            chunks_directory: /loki/chunks
            rules_directory: /loki/rules
        replication_factor: 1
        ring:
          kvstore:
            store: inmemory

      schema_config:
        configs:
          - from: 2023-01-01
            store: tsdb
            object_store: filesystem
            schema: v13
            index:
              prefix: index_
              # loki will silently fail if this is any value other than "24h"
              period: 24h

      compactor:
        working_directory: /loki/retention
        compaction_interval: 24h
        retention_enabled: true
        delete_request_store: filesystem
        retention_delete_delay: 1h
        retention_delete_worker_count: 150

      limits_config:
        retention_period: 672h

      query_scheduler:
        max_outstanding_requests_per_tenant: 2048

      ruler:
        alertmanager_url: http://localhost:9093

  # Prometheus discovers and scrapes every database through Lenz.
  prometheus_config:
    content: |
      global:
        scrape_interval: 5s
        scrape_timeout: 4s
        external_labels:
          monitor: codelab-monitor
      scrape_configs:
        - job_name: aperturedb
          metrics_path: /api/metrics
          authorization:
            credentials_file: /etc/prometheus/auth/password
          http_sd_configs:
            - url: http://lenz:8080/api/servers?format=prometheus
              refresh_interval: 5s
              authorization:
                credentials_file: /etc/prometheus/auth/password
          relabel_configs:
            - source_labels: [__address__]
              target_label: __param_server
            - source_labels: [pod_ip]
              target_label: instance
            - target_label: __address__
              replacement: lenz:8080

  # Bearer password shared by Prometheus and Lenz for /api/servers and
  # /api/metrics; set MONITORING_PASSWORD.
  monitoring_password:
    content: ${MONITORING_PASSWORD:-monitoring}

  # Lenz collects metrics as the _telemetry database user, which authenticates
  # with the master key; set ADB_MASTER_KEY.
  telemetry_db_password:
    content: ${ADB_MASTER_KEY:-admin}

volumes:
  certificate_volume:
  aperturedb_0_logs:
  aperturedb_1_logs:
  checkpointer_checkpointer_logs:
  grafana:
  loki:
  prometheus:
  zookeeper_zoo1_data:
  zookeeper_zoo2_data:
  zookeeper_zoo3_data:

Docker commands

docker compose -f oci://aperturedata/aperturedb-compose-distributed-cloud:0.19.14 up

Use the above command to pull and run the Compose file. Learn more⁠.

Images used

Image + 1 more

Official build of Nginx.


Pulls

1B+

Stars

21417

Last Updated

1 day

Image

Apache ZooKeeper is an open-source server which enables highly reliable distributed coordination.


Pulls

100M+

Stars

1494

Last Updated

4 days

Image

Loki - Cloud Native Log Aggregation by Grafana


Pulls

1B+

Stars

336

Last Updated

about 3 hours

Image

openssl


Pulls

10M+

Stars

8

Last Updated

about 15 hours

Image

prom/prometheus


Pulls

1B+

Stars

2078

Last Updated

1 day

Image

ApertureDB


Pulls

50K+

Stars

0

Last Updated

about 17 hours

Image


Pulls

50K+

Stars

0

Last Updated

about 17 hours

Image

Webui for ApertureDB


Pulls

10K+

Stars

0

Last Updated

about 17 hours

Image


Pulls

10K+

Stars

0

Last Updated

about 17 hours