blob: ed310707ee35ac3531b65f9a3ca47a39835e40b6 [file]
services:
cassandra-service:
image: cassandra:latest
ports:
- "9042:9042"
volumes:
# This configuration is customized to enable materialized views.
- ${PWD}/docker-files/cassandra.yaml:/etc/cassandra/cassandra.yaml
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces"]
interval: 5s
timeout: 5s
retries: 60
cassandra3-service:
image: cassandra:3
ports:
- "9042:9042"
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces"]
interval: 5s
timeout: 5s
retries: 60
cassandra2-service:
image: cassandra:2
ports:
- "9042:9042"
volumes:
- ${PWD}/docker-files/cassandra2.yaml:/etc/cassandra/cassandra.yaml
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces"]
interval: 5s
timeout: 5s
retries: 60
scylladb-service:
image: scylladb/scylla:latest
ports:
- "9042:9042"
volumes:
# This configuration is customized to enable materialized views.
- ${PWD}/docker-files/cassandra.yaml:/etc/cassandra/cassandra.yaml
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces"]
interval: 5s
timeout: 5s
retries: 60
# These exists to force the condition of having the Cassandra service is up before starting the tests.
# The healthcheck above is not enough because it does not provide a condition to wait for the service
# to be up. And this is simpler than installing cqlsh and using it to check the service status on the
# CI server. This uses alpine since it is a pretty small image.
cassandra-latest:
image: alpine:latest
depends_on:
cassandra-service:
condition: service_healthy
cassandra3:
image: alpine:latest
depends_on:
cassandra3-service:
condition: service_healthy
cassandra2:
image: alpine:latest
depends_on:
cassandra2-service:
condition: service_healthy
scylladb-latest:
image: alpine:latest
depends_on:
scylladb-service:
condition: service_healthy
dse:
image: datastax/dse-server
environment:
- DS_LICENSE=accept
ports:
- "9043:9042"