server/docker-compose.yml
2024-10-13 13:31:58 +04:00

85 lines
3.0 KiB
YAML

services:
postgres:
image: postgres:16.3-alpine
container_name: "ohmychat-postgres"
hostname: "ohmychat-postgres"
ports:
- "5432:5432"
volumes:
- dbdata:/var/lib/postgresql/data
env_file:
- ./config/postgres/.env
init: true
kafka-1:
image: confluentinc/cp-kafka:latest
container_name: kafka-1
hostname: kafka-1
ports:
- "9092:9092"
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_LISTENERS: PLAINTEXT://kafka-1:29092,PLAINTEXT_HOST://0.0.0.0:9092,CONTROLLER://kafka-1:29093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:29093,2@kafka-2:29093
KAFKA_LOG_DIRS: /var/lib/kafka/data
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
CLUSTER_ID: NeEcW4ddRIWWZOxkgFaC4w
init: true
# https://docs.confluent.io/platform/current/multi-dc-deployments/multi-region.html
# KAFKA_REPLICA_SELECTOR_CLASS: org.apache.kafka.common.replica.RackAwareReplicaSelector
# KAFKA_BROKER_RACK: rack-1
kafka-2:
image: confluentinc/cp-kafka:latest
container_name: kafka-2
hostname: kafka-2
ports:
- "9093:9092"
environment:
KAFKA_NODE_ID: 2
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-2:29092,PLAINTEXT_HOST://localhost:9093
KAFKA_LISTENERS: PLAINTEXT://kafka-2:29092,PLAINTEXT_HOST://0.0.0.0:9092,CONTROLLER://kafka-2:29093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:29093,2@kafka-2:29093
KAFKA_LOG_DIRS: /var/lib/kafka/data
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
CLUSTER_ID: NeEcW4ddRIWWZOxkgFaC4w
init: true
scylla-1:
image: scylladb/scylla:latest
container_name: scylla-1
hostname: scylla-1
volumes:
- "./config/scylla/scylla.yaml:/etc/scylla/scylla.yaml"
- "./config/scylla/cassandra-rackdc.properties.dc1.rack1:/etc/scylla/cassandra-rackdc.properties"
ports:
- "9042:9042"
command: --seeds=scylla-1,scylla-2 --smp 2
scylla-2:
image: scylladb/scylla:latest
container_name: scylla-2
hostname: scylla-2
volumes:
- "./config/scylla/scylla.yaml:/etc/scylla/scylla.yaml"
- "./config/scylla/cassandra-rackdc.properties.dc1.rack2:/etc/scylla/cassandra-rackdc.properties"
ports:
- "9043:9042"
command: --seeds=scylla-1,scylla-2 --smp 2
depends_on:
- scylla-1
volumes:
dbdata: