dotnet-cqrs/docker-compose.yml

74 lines
1.6 KiB
YAML

version: '3.8'
services:
# PostgreSQL for event persistence
postgres:
image: postgres:16-alpine
container_name: svrnty-postgres
ports:
- "5432:5432"
environment:
POSTGRES_USER: svrnty
POSTGRES_PASSWORD: svrnty_dev
POSTGRES_DB: svrnty_events
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U svrnty"]
interval: 10s
timeout: 5s
retries: 5
networks:
- svrnty-network
# RabbitMQ for cross-service messaging
rabbitmq:
image: rabbitmq:3-management-alpine
container_name: svrnty-rabbitmq
ports:
- "5672:5672" # AMQP port
- "15672:15672" # Management UI
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
RABBITMQ_DEFAULT_VHOST: /
volumes:
- rabbitmq_data:/var/lib/rabbitmq
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 10s
timeout: 5s
retries: 5
networks:
- svrnty-network
# pgAdmin for PostgreSQL management (optional)
pgadmin:
image: dpage/pgadmin4:latest
container_name: svrnty-pgadmin
ports:
- "5050:80"
environment:
PGADMIN_DEFAULT_EMAIL: admin@svrnty.local
PGADMIN_DEFAULT_PASSWORD: admin
volumes:
- pgadmin_data:/var/lib/pgadmin
depends_on:
- postgres
networks:
- svrnty-network
profiles:
- tools
volumes:
postgres_data:
driver: local
rabbitmq_data:
driver: local
pgadmin_data:
driver: local
networks:
svrnty-network:
driver: bridge