To run one or more services, use the following command:
sudo docker compose up <service1_name> <service2_name> ... --wait -d
sudo docker compose up broker kafka-ui --wait -dservices:
kafka-ui:
container_name: kafka-ui
image: provectuslabs/kafka-ui:v0.7.2
ports:
- 8558:8080
environment:
DYNAMIC_CONFIG_ENABLED: 'true'
LOGGING_LEVEL_ROOT: 'DEBUG'
KAFKA_CLUSTERS_0_NAME: 'Local Kafka Cluster'
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: 'broker:29092'
networks:
- confluent
depends_on:
- broker
zookeeper:
image: confluentinc/cp-zookeeper:7.8.0
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
networks:
- confluent
broker:
image: confluentinc/cp-kafka:7.8.0
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
networks:
- confluent
schema-registry:
image: confluentinc/cp-schema-registry:7.8.0
depends_on:
- broker
ports:
- "8081:8081"
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: PLAINTEXT://broker:29092
networks:
- confluent
kafka-rest:
image: confluentinc/cp-kafka-rest:7.8.0
depends_on:
- broker
ports:
- "8082:8082"
environment:
KAFKA_REST_HOST_NAME: kafka-rest
KAFKA_REST_LISTENERS: http://0.0.0.0:8082
KAFKA_REST_BOOTSTRAP_SERVERS: PLAINTEXT://broker:29092
networks:
- confluent
ksql-cli:
image: confluentinc/cp-ksqldb-cli:7.8.0
container_name: ksql-cli
depends_on:
- ksql-db
entrypoint: /bin/sh
tty: true
networks:
- confluent
ksql-db:
image: confluentinc/cp-ksqldb-server:7.8.0
depends_on:
- broker
- schema-registry
ports:
- "8088:8088"
environment:
KSQL_CONFIG_DIR: "/etc/ksqldb"
KSQL_BOOTSTRAP_SERVERS: PLAINTEXT://broker:29092
KSQL_HOST_NAME: ksql-db
KSQL_LISTENERS: http://0.0.0.0:8088
KSQL_KSQL_SCHEMA_REGISTRY_URL: http://schema-registry:8081
KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: "true"
KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: "true"
networks:
- confluent
redis:
image: redis:8.0-M02-alpine
container_name: redis
ports:
- "6379:6379"
rabbitmq:
image: rabbitmq:4.1-rc-management-alpine
container_name: rabbitmq
restart: always
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: "guest"
RABBITMQ_DEFAULT_PASS: "guest"
RABBITMQ_MANAGEMENT_PORT: "15672"
RABBITMQ_LOOPBACK_USERS: "none"
minio:
image: minio/minio:RELEASE.2024-10-13T13-34-11Z
container_name: minio
environment:
MINIO_ACCESS_KEY: "access123"
MINIO_SECRET_KEY: "keykey123"
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio-data:/data
command: server /data --console-address ":9001"
postgres:
image: postgres:17-alpine
container_name: postgres
environment:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "your_password"
POSTGRES_DB: "dev"
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
mongo:
image: mongo:8.0
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
ports:
- "27018:27017"
volumes:
- mongo-data:/data/db
mongo1:
image: mongo:8.0
command: ["--replSet", "rs0", "--bind_ip_all", "--port", "27017"]
ports:
- 27017:27017
healthcheck:
test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'localhost:27017'}]}) }" | mongosh --port 27017 --quiet
interval: 5s
timeout: 30s
start_period: 0s
start_interval: 1s
retries: 30
volumes:
- mongo1_data:/data/db
- mongo1_config:/data/configdb
networks:
- mongo-net
openobserve:
image: public.ecr.aws/zinclabs/openobserve:latest
restart: unless-stopped
environment:
ZO_ROOT_USER_EMAIL: "root@example.com"
ZO_ROOT_USER_PASSWORD: "Complexpass#123"
ports:
- "5080:5080"
- "5081:5081"
volumes:
- open-data:/data
postgres-timescaledb:
image: timescale/timescaledb:2.10.0-pg15
container_name: postgres_db_ts
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: your_password
POSTGRES_DB: vest
ports:
- "5433:5432"
volumes:
- postgres-timescale-data:/var/lib/postgresql/data
restart: unless-stopped
networks:
mongo-net:
driver: bridge
confluent:
driver: bridge
volumes:
mongo-data:
mongo1_data:
mongo1_config:
kafka-volume:
minio-data:
postgres-data:
open-data:
postgres-timescale-data: