FastStream is an asynchronous Python framework for building event-driven applications. It brings together message broker integration, dependency injection,...
docker pull library/rabbitmq
docker run -d --name faststream -p 5672:5672 --restart always rabbitmq:3.13-alpine
podman run -d --name faststream -p 5672:5672 --restart always rabbitmq:3.13-alpine
skopeo inspect docker://docker.io/library/rabbitmq:3.13-alpine
oras pull rabbitmq:3.13-alpine
docker compose up -d
services:
rabbitmq:
image: rabbitmq:3.13-alpine
ports:
- "5672:5672"
security_opt:
- no-new-privileges:true
kafka:
image: confluentinc/cp-kafka:8.0.0
ports:
- "9092:9092"
environment:
KAFKA_NODE_ID: "1"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT"
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://127.0.0.1:9092"
KAFKA_PROCESS_ROLES: "broker,controller"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_BROKER_ID: "1"
KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka:9093"
KAFKA_LISTENERS: "PLAINTEXT://:9092,CONTROLLER://:9093"
KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT"
KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
CLUSTER_ID: "MkU3OEVBNTcwNTJENDM2Qk"
security_opt:
- no-new-privileges:true
nats:
image: nats
command: -js
ports:
- 4222:4222
- 8222:8222 # management
security_opt:
- no-new-privileges:true
redis:
image: redis:8-alpine
ports:
- 6379:6379
security_opt:
- no-new-privileges:true
redis-cluster:
image: redis:8-alpine
network_mode: host
healthcheck:
test: redis-cli -p 7001 ping || exit 1
interval: 2s
timeout: 3s
retries: 40
start_period: 5s
command:
- sh
- -c
- |
redis-server --port 7001 --cluster-enabled yes --cluster-config-file nodes-1.conf --cluster-node-timeout 5000 --appendonly no --save '' &
redis-server --port 7002 --cluster-enabled yes --cluster-config-file nodes-2.conf --cluster-node-timeout 5000 --appendonly no --save '' &
redis-server --port 7003 --cluster-enabled yes --cluster-config-file nodes-3.conf --cluster-node-timeout 5000 --appendonly no --save '' &
for p in 7001 7002 7003; do
echo "waiting for port $$p ..."
until redis-cli -p $$p ping 2>/dev/null; do sleep 0.5; done
done &&
i=0
while [ $$i -lt 10 ]; do
echo "Creating cluster (attempt $$((i+1)))..."
echo yes | redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 --cluster-replicas 0 && break
i=$$((i+1))
sleep 1
done &&
echo 'Redis Cluster ready' &&
tail -f /dev/null
artemis:
image: apache/activemq-artemis:latest-alpine
environment:
ANONYMOUS_LOGIN: "true"
ports:
- "1883:1883"
security_opt:
- no-new-privileges:true