trading-platform/docker/docker-compose.prod.yml

215 lines
6.0 KiB
YAML

version: '3.8'
# =============================================================================
# TRADING PLATFORM - Production Docker Compose
# =============================================================================
# Servidor: 72.60.226.4
# Dominio: trading.isem.dev / api.trading.isem.dev
# =============================================================================
services:
# ===========================================================================
# BACKEND API
# ===========================================================================
backend:
image: ${DOCKER_REGISTRY:-72.60.226.4:5000}/trading-platform-backend:${VERSION:-latest}
container_name: trading-backend
restart: unless-stopped
ports:
- "3081:3081"
environment:
- NODE_ENV=production
env_file:
- ../apps/backend/.env.production
volumes:
- backend-logs:/var/log/trading-platform
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3081/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- trading-network
- isem-network
deploy:
resources:
limits:
cpus: '2'
memory: 1G
reservations:
cpus: '0.5'
memory: 512M
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# ===========================================================================
# FRONTEND
# ===========================================================================
frontend:
image: ${DOCKER_REGISTRY:-72.60.226.4:5000}/trading-platform-frontend:${VERSION:-latest}
container_name: trading-frontend
restart: unless-stopped
ports:
- "3080:80"
depends_on:
backend:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 3
networks:
- trading-network
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# ===========================================================================
# WEBSOCKET SERVICE
# ===========================================================================
websocket:
image: ${DOCKER_REGISTRY:-72.60.226.4:5000}/trading-platform-backend:${VERSION:-latest}
container_name: trading-websocket
restart: unless-stopped
ports:
- "3082:3082"
environment:
- NODE_ENV=production
- PORT=3082
- SERVICE_TYPE=websocket
env_file:
- ../apps/backend/.env.production
depends_on:
backend:
condition: service_healthy
networks:
- trading-network
- isem-network
deploy:
resources:
limits:
cpus: '1'
memory: 512M
# ===========================================================================
# ML ENGINE (Python/FastAPI)
# ===========================================================================
ml-engine:
image: ${DOCKER_REGISTRY:-72.60.226.4:5000}/trading-platform-ml-engine:${VERSION:-latest}
container_name: trading-ml-engine
restart: unless-stopped
ports:
- "3083:3083"
environment:
- ENVIRONMENT=production
env_file:
- ../apps/ml-engine/.env.production
volumes:
- ml-models:/app/models
depends_on:
backend:
condition: service_healthy
networks:
- trading-network
deploy:
resources:
limits:
cpus: '2'
memory: 2G
# ===========================================================================
# DATA SERVICE (Python)
# ===========================================================================
data-service:
image: ${DOCKER_REGISTRY:-72.60.226.4:5000}/trading-platform-data-service:${VERSION:-latest}
container_name: trading-data-service
restart: unless-stopped
ports:
- "3084:3084"
environment:
- ENVIRONMENT=production
env_file:
- ../apps/data-service/.env.production
networks:
- trading-network
- isem-network
deploy:
resources:
limits:
cpus: '1'
memory: 512M
# ===========================================================================
# LLM AGENT (Python/FastAPI)
# ===========================================================================
llm-agent:
image: ${DOCKER_REGISTRY:-72.60.226.4:5000}/trading-platform-llm-agent:${VERSION:-latest}
container_name: trading-llm-agent
restart: unless-stopped
ports:
- "3085:3085"
environment:
- ENVIRONMENT=production
env_file:
- ../apps/llm-agent/.env.production
networks:
- trading-network
deploy:
resources:
limits:
cpus: '1'
memory: 1G
# ===========================================================================
# TRADING AGENTS (Python/FastAPI)
# ===========================================================================
trading-agents:
image: ${DOCKER_REGISTRY:-72.60.226.4:5000}/trading-platform-trading-agents:${VERSION:-latest}
container_name: trading-agents
restart: unless-stopped
ports:
- "3086:3086"
environment:
- ENVIRONMENT=production
env_file:
- ../apps/trading-agents/.env.production
networks:
- trading-network
- isem-network
deploy:
resources:
limits:
cpus: '2'
memory: 1G
# =============================================================================
# VOLUMES
# =============================================================================
volumes:
backend-logs:
driver: local
ml-models:
driver: local
# =============================================================================
# NETWORKS
# =============================================================================
networks:
trading-network:
driver: bridge
isem-network:
external: true
name: isem-network