created cluster. import not working

This commit is contained in:
Alfredo Oliviero 2024-07-24 15:41:02 +02:00
parent c4b5173661
commit f163144a65
5 changed files with 79 additions and 28 deletions

View File

@ -1,6 +1,9 @@
# Use the official Cassandra 4.1.3 image # Use the official Cassandra 4.1.3 image
FROM cassandra:4.1.3 FROM cassandra:4.1.3
RUN apt-get update && apt-get install -y iputils-ping less locate
# Environment variables to configure Cassandra # Environment variables to configure Cassandra
ENV CASSANDRA_CLUSTER_NAME=TestCluster ENV CASSANDRA_CLUSTER_NAME=TestCluster
ENV CASSANDRA_NUM_TOKENS=256 ENV CASSANDRA_NUM_TOKENS=256
@ -17,6 +20,13 @@ COPY data/dev_keyspace_schema.cql /docker-entrypoint-initdb.d/dev_keyspace_schem
COPY scripts/setup.sh /setup.sh COPY scripts/setup.sh /setup.sh
RUN chmod +x /setup.sh RUN chmod +x /setup.sh
# Copy cassandra.yaml
COPY cassandra.yaml /etc/cassandra/
# Copy cassandra-rackdc.properties and substitute environment variables
COPY cassandra-rackdc.properties /etc/cassandra/
RUN envsubst < /etc/cassandra/cassandra-rackdc.properties > /etc/cassandra/cassandra-rackdc.properties
# Set the entrypoint # Set the entrypoint
ENTRYPOINT ["/setup.sh"] ENTRYPOINT ["/setup.sh"]
@ -24,4 +34,4 @@ ENTRYPOINT ["/setup.sh"]
EXPOSE 7000 7001 7199 9042 9160 EXPOSE 7000 7001 7199 9042 9160
# Add health check # Add health check
HEALTHCHECK --interval=30s --timeout=10s --retries=5 CMD cqlsh -e "DESCRIBE KEYSPACES" || exit 1 # HEALTHCHECK --interval=30s --timeout=10s --retries=5 CMD cqlsh -e "DESCRIBE KEYSPACES" || exit 1

View File

@ -29,8 +29,8 @@ run a single service:
open bash on server open bash on server
* cassandra1: `docker exec -it cassandra-cassandra1 /bin/sh` * cassandra1: `docker exec -it cassandra1 /bin/bash`
* cassandra2: `docker exec -it cassandra-cassandra2 /bin/sh` * cassandra2: `docker exec -it cassandra2 /bin/bash`
* cassandra3: `docker exec -it cassandra-cassandra3 /bin/sh` * cassandra3: `docker exec -it cassandra3 /bin/bash`

View File

@ -0,0 +1,2 @@
dc=${CASSANDRA_DC}
rack=${CASSANDRA_RACK}

27
cassandra.yaml Normal file
View File

@ -0,0 +1,27 @@
# Seed provider
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "${CASSANDRA_SEEDS}"
# Address to bind to and tell other Cassandra nodes to connect to
listen_address: "${CASSANDRA_LISTEN_ADDRESS}"
# Address to broadcast to other Cassandra nodes
broadcast_address: "${CASSANDRA_BROADCAST_ADDRESS}"
# Address to bind the RPC server (default: same as listen_address)
rpc_address: 0.0.0.0
# Address to broadcast to clients
broadcast_rpc_address: "${CASSANDRA_RPC_ADDRESS}"
# Native transport port for CQL
native_transport_port: 9042
# Snitch configuration
endpoint_snitch: GossipingPropertyFileSnitch
# DC and RACK settings
dc: ${CASSANDRA_DC}
rack: ${CASSANDRA_RACK}

View File

@ -2,12 +2,16 @@ version: '3.8'
services: services:
cassandra1: cassandra1:
build: . image: cassandra:4.1.3
container_name: cassandra1 container_name: cassandra1
env_file: env_file:
- .env - .env
environment: environment:
- CASSANDRA_BROADCAST_ADDRESS=cassandra1 - CASSANDRA_BROADCAST_ADDRESS=cassandra1
- CASSANDRA_LISTEN_ADDRESS=cassandra1
- CASSANDRA_RPC_ADDRESS=cassandra1
- CASSANDRA_DC=DC1
- CASSANDRA_RACK=RAC1
- PRIMARY_NODE=true - PRIMARY_NODE=true
volumes: volumes:
- ./data/dumps/node1:/dump - ./data/dumps/node1:/dump
@ -17,19 +21,23 @@ services:
- "9042:9042" - "9042:9042"
networks: networks:
- cassandra-net - cassandra-net
healthcheck: # healthcheck:
test: ["CMD", "cqlsh", "-e", "DESCRIBE KEYSPACES"] # test: ["CMD", "cqlsh", "-e", "DESCRIBE KEYSPACES"]
interval: 30s # interval: 30s
timeout: 10s # timeout: 10s
retries: 5 # retries: 5
cassandra2: cassandra2:
build: . image: cassandra:4.1.3
container_name: cassandra2 container_name: cassandra2
env_file: env_file:
- .env - .env
environment: environment:
- CASSANDRA_BROADCAST_ADDRESS=cassandra2 - CASSANDRA_BROADCAST_ADDRESS=cassandra2
- CASSANDRA_LISTEN_ADDRESS=cassandra2
- CASSANDRA_RPC_ADDRESS=cassandra2
- CASSANDRA_DC=DC1
- CASSANDRA_RACK=RAC1
- PRIMARY_NODE=false - PRIMARY_NODE=false
volumes: volumes:
- ./data/dumps/node2:/dump - ./data/dumps/node2:/dump
@ -37,22 +45,26 @@ services:
- ./logs/node2:/var/log/cassandra - ./logs/node2:/var/log/cassandra
networks: networks:
- cassandra-net - cassandra-net
depends_on: # depends_on:
cassandra1: # cassandra1:
condition: service_healthy # condition: service_healthy
healthcheck: # healthcheck:
test: ["CMD", "cqlsh", "-e", "DESCRIBE KEYSPACES"] # test: ["CMD", "cqlsh", "-e", "DESCRIBE KEYSPACES"]
interval: 30s # interval: 30s
timeout: 10s # timeout: 10s
retries: 5 # retries: 5
cassandra3: cassandra3:
build: . image: cassandra:4.1.3
container_name: cassandra3 container_name: cassandra3
env_file: env_file:
- .env - .env
environment: environment:
- CASSANDRA_BROADCAST_ADDRESS=cassandra3 - CASSANDRA_BROADCAST_ADDRESS=cassandra3
- CASSANDRA_LISTEN_ADDRESS=cassandra3
- CASSANDRA_RPC_ADDRESS=cassandra3
- CASSANDRA_DC=DC1
- CASSANDRA_RACK=RAC1
- PRIMARY_NODE=false - PRIMARY_NODE=false
volumes: volumes:
- ./data/dumps/node3:/dump - ./data/dumps/node3:/dump
@ -60,14 +72,14 @@ services:
- ./logs/node3:/var/log/cassandra - ./logs/node3:/var/log/cassandra
networks: networks:
- cassandra-net - cassandra-net
depends_on: # depends_on:
cassandra2: # cassandra2:
condition: service_healthy # condition: service_healthy
healthcheck: # healthcheck:
test: ["CMD", "cqlsh", "-e", "DESCRIBE KEYSPACES"] # test: ["CMD", "cqlsh", "-e", "DESCRIBE KEYSPACES"]
interval: 30s # interval: 30s
timeout: 10s # timeout: 10s
retries: 5 # retries: 5
networks: networks:
cassandra-net: cassandra-net: