CloudSRE-Environment / docker-compose.yml
Harikishanth R
feat: docker-compose + eliminate ALL HTTP flags
ff31e01
Raw
History Blame Contribute Delete
7.95 kB
version: "3.9"
# CloudSRE v2 β€” Distributed Microservice Architecture
# 16 real containers, each with its own PID namespace, network stack, and filesystem.
# This is NOT localhost subprocess spawning β€” each service is a real Docker container.
#
# Usage:
# docker-compose up -d # Start all 16 services + orchestrator
# docker ps # See 17 running containers
# docker kill cloudsre-payment # Real SIGKILL β€” port goes dead
# docker pause cloudsre-dns # Real SIGSTOP β€” TCP timeouts cascade
#
# Architecture:
# 172.20.0.2 orchestrator (API server, port 7860)
# 172.20.0.10 payment 172.20.0.11 auth 172.20.0.12 worker
# 172.20.0.13 frontend 172.20.0.14 cache 172.20.0.15 notification
# 172.20.0.16 search 172.20.0.17 gateway 172.20.0.18 scheduler
# 172.20.0.19 storage 172.20.0.20 metrics 172.20.0.21 email
# 172.20.0.22 billing 172.20.0.23 config 172.20.0.24 dns
# 172.20.0.25 loadbalancer
x-service-defaults: &service-defaults
build:
context: .
dockerfile: Dockerfile.service
restart: unless-stopped
volumes:
- shared-data:/data
- shared-logs:/var/log
networks:
- sre-mesh
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:${PORT:-8001}/healthz"]
interval: 10s
timeout: 3s
retries: 3
services:
# ── Orchestrator (API Gateway) ─────────────────────────────
orchestrator:
build:
context: .
dockerfile: Dockerfile
container_name: cloudsre-orchestrator
ports:
- "7860:7860"
volumes:
- shared-data:/data
- shared-logs:/var/log
- /var/run/docker.sock:/var/run/docker.sock
environment:
- CONTAINER_MODE=docker
- DATA_DIR=/data
- LOG_DIR=/var/log
networks:
sre-mesh:
ipv4_address: 172.20.0.2
depends_on:
- payment
- auth
- worker
- frontend
- cache
- notification
- search
- gateway
- scheduler
- storage
- metrics_collector
- email
- billing
- config
- dns
- loadbalancer
# ── us-east-1 Region ───────────────────────────────────────
payment:
<<: *service-defaults
container_name: cloudsre-payment
command: python -m cloud_sre_v2.services._service_worker --service payment --port 8001 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8001:8001"]
networks:
sre-mesh:
ipv4_address: 172.20.0.10
auth:
<<: *service-defaults
container_name: cloudsre-auth
command: python -m cloud_sre_v2.services._service_worker --service auth --port 8002 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8002:8002"]
networks:
sre-mesh:
ipv4_address: 172.20.0.11
billing:
<<: *service-defaults
container_name: cloudsre-billing
command: python -m cloud_sre_v2.services._service_worker --service billing --port 8013 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8013:8013"]
networks:
sre-mesh:
ipv4_address: 172.20.0.22
gateway:
<<: *service-defaults
container_name: cloudsre-gateway
command: python -m cloud_sre_v2.services._service_worker --service gateway --port 8008 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8008:8008"]
networks:
sre-mesh:
ipv4_address: 172.20.0.17
loadbalancer:
<<: *service-defaults
container_name: cloudsre-loadbalancer
command: python -m cloud_sre_v2.services._service_worker --service loadbalancer --port 8016 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8016:8016"]
networks:
sre-mesh:
ipv4_address: 172.20.0.25
config:
<<: *service-defaults
container_name: cloudsre-config
command: python -m cloud_sre_v2.services._service_worker --service config --port 8014 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8014:8014"]
networks:
sre-mesh:
ipv4_address: 172.20.0.23
# ── eu-west-1 Region ───────────────────────────────────────
worker:
<<: *service-defaults
container_name: cloudsre-worker
command: python -m cloud_sre_v2.services._service_worker --service worker --port 8003 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8003:8003"]
networks:
sre-mesh:
ipv4_address: 172.20.0.12
scheduler:
<<: *service-defaults
container_name: cloudsre-scheduler
command: python -m cloud_sre_v2.services._service_worker --service scheduler --port 8009 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8009:8009"]
networks:
sre-mesh:
ipv4_address: 172.20.0.18
search:
<<: *service-defaults
container_name: cloudsre-search
command: python -m cloud_sre_v2.services._service_worker --service search --port 8007 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8007:8007"]
networks:
sre-mesh:
ipv4_address: 172.20.0.16
storage:
<<: *service-defaults
container_name: cloudsre-storage
command: python -m cloud_sre_v2.services._service_worker --service storage --port 8010 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8010:8010"]
networks:
sre-mesh:
ipv4_address: 172.20.0.19
metrics_collector:
<<: *service-defaults
container_name: cloudsre-metrics
command: python -m cloud_sre_v2.services._service_worker --service metrics_collector --port 8011 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8011:8011"]
networks:
sre-mesh:
ipv4_address: 172.20.0.20
# ── ap-south-1 Region ──────────────────────────────────────
frontend:
<<: *service-defaults
container_name: cloudsre-frontend
command: python -m cloud_sre_v2.services._service_worker --service frontend --port 8004 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8004:8004"]
networks:
sre-mesh:
ipv4_address: 172.20.0.13
cache:
<<: *service-defaults
container_name: cloudsre-cache
command: python -m cloud_sre_v2.services._service_worker --service cache --port 8005 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8005:8005"]
networks:
sre-mesh:
ipv4_address: 172.20.0.14
notification:
<<: *service-defaults
container_name: cloudsre-notification
command: python -m cloud_sre_v2.services._service_worker --service notification --port 8006 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8006:8006"]
networks:
sre-mesh:
ipv4_address: 172.20.0.15
email:
<<: *service-defaults
container_name: cloudsre-email
command: python -m cloud_sre_v2.services._service_worker --service email --port 8012 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8012:8012"]
networks:
sre-mesh:
ipv4_address: 172.20.0.21
dns:
<<: *service-defaults
container_name: cloudsre-dns
command: python -m cloud_sre_v2.services._service_worker --service dns --port 8015 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log
ports: ["8015:8015"]
networks:
sre-mesh:
ipv4_address: 172.20.0.24
networks:
sre-mesh:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
volumes:
shared-data:
shared-logs: