services: cassandra: build: context: ./test/docker dockerfile: cassandra.dockerfile args: CASSANDRA_VERSION: "${CASSANDRA_VERSION:-4.1}" ports: - "9052:9042" # TCP connections - "9152:9142" # TLS/SSL connections environment: - HEAP_NEWSIZE=1M - MAX_HEAP_SIZE=200M healthcheck: test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] interval: 20s timeout: 10s retries: 12 logging: driver: "json-file" options: max-size: 50m cassandra_with_auth: build: context: ./test/docker dockerfile: cassandra.dockerfile args: AUTHENTICATION: "true" CASSANDRA_VERSION: "${CASSANDRA_VERSION:-4.1}" ports: - "9053:9042" environment: - HEAP_NEWSIZE=1M - MAX_HEAP_SIZE=200M healthcheck: test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] interval: 20s timeout: 10s retries: 12 logging: driver: "json-file" options: max-size: 50m scylladb: build: context: ./test/docker dockerfile: scylladb.dockerfile args: SCYLLA_VERSION: ${SCYLLA_VERSION:-5.2} ports: - "9062:9042" command: - "--smp" - "1" healthcheck: test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] interval: 20s timeout: 10s retries: 12 logging: driver: "json-file" options: max-size: 50m # A multi-shard ScyllaDB instance to test shard awareness, with the # shard-aware port (19042) exposed. The shard-aware port must be mapped to # the same port on the host, because ScyllaDB advertises its own (internal) # port number to clients. scylladb_shard_aware: build: context: ./test/docker dockerfile: scylladb.dockerfile args: SCYLLA_VERSION: ${SCYLLA_VERSION:-5.2} ports: - "9072:9042" - "19042:19042" command: - "--smp" - "2" healthcheck: test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] interval: 20s timeout: 10s retries: 12 logging: driver: "json-file" options: max-size: 50m scylladb_with_auth: build: context: ./test/docker dockerfile: scylladb.dockerfile args: SCYLLA_VERSION: ${SCYLLA_VERSION:-5.1.6} AUTHENTICATION: "true" ports: - "9063:9042" command: - "--smp" - "1" healthcheck: test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] interval: 20s timeout: 10s retries: 12 logging: driver: "json-file" options: max-size: 50m toxiproxy: image: ghcr.io/shopify/toxiproxy:2.6.0 command: -host 0.0.0.0 volumes: - ./test/toxiproxy_config.json:/config/toxiproxy.json ports: - "8474:8474" # Toxiproxy HTTP API - "19052:9042" # Cassandra - "19062:9043" # ScyllaDB