version: "3.8" networks: mapleopentech-private-prod: external: true volumes: cassandra-1-data: cassandra-2-data: cassandra-3-data: services: cassandra-1: image: cassandra:5.0.4 hostname: cassandra-1 networks: - mapleopentech-private-prod environment: - CASSANDRA_CLUSTER_NAME=mapleopentech-prod-cluster - CASSANDRA_DC=datacenter1 - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3 - MAX_HEAP_SIZE=512M - HEAP_NEWSIZE=128M volumes: - cassandra-1-data:/var/lib/cassandra deploy: replicas: 1 placement: constraints: - node.labels.cassandra == node1 restart_policy: condition: on-failure delay: 10s max_attempts: 3 healthcheck: test: ["CMD-SHELL", "cqlsh -e 'describe cluster' || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 120s cassandra-2: image: cassandra:5.0.4 hostname: cassandra-2 networks: - mapleopentech-private-prod environment: - CASSANDRA_CLUSTER_NAME=mapleopentech-prod-cluster - CASSANDRA_DC=datacenter1 - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3 - MAX_HEAP_SIZE=512M - HEAP_NEWSIZE=128M volumes: - cassandra-2-data:/var/lib/cassandra deploy: replicas: 1 placement: constraints: - node.labels.cassandra == node2 restart_policy: condition: on-failure delay: 10s max_attempts: 3 healthcheck: test: ["CMD-SHELL", "cqlsh -e 'describe cluster' || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 120s cassandra-3: image: cassandra:5.0.4 hostname: cassandra-3 networks: - mapleopentech-private-prod environment: - CASSANDRA_CLUSTER_NAME=mapleopentech-prod-cluster - CASSANDRA_DC=datacenter1 - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_SEEDS=cassandra-1,cassandra-2,cassandra-3 - MAX_HEAP_SIZE=512M - HEAP_NEWSIZE=128M volumes: - cassandra-3-data:/var/lib/cassandra deploy: replicas: 1 placement: constraints: - node.labels.cassandra == node3 restart_policy: condition: on-failure delay: 10s max_attempts: 3 healthcheck: test: ["CMD-SHELL", "cqlsh -e 'describe cluster' || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 120s