Files
microdao-daarion/docker-compose.node3.yml

122 lines
3.5 KiB
YAML

version: '3.8'
services:
# DAGI Router для NODE3
dagi-router-node3:
build:
context: ./services/router
dockerfile: Dockerfile
container_name: dagi-router-node3
ports:
- "9102:8000"
environment:
- NATS_URL=nats://144.76.224.179:4222
- ROUTER_CONFIG_PATH=/app/router_config.yaml
- LOG_LEVEL=info
- NODE_ID=node-3-threadripper-rtx3090
- COMFY_AGENT_URL=http://comfy-agent:8880
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./services/router/router_config.yaml:/app/router_config.yaml:ro
- ./logs:/app/logs
networks:
- dagi-network
restart: unless-stopped
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# Swapper Service для NODE3
swapper-service-node3:
build:
context: ./services/swapper-service
dockerfile: Dockerfile
container_name: swapper-service-node3
ports:
- "8890:8890"
- "8891:8891" # Metrics
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- SWAPPER_CONFIG_PATH=/app/config/swapper_config.yaml
- SWAPPER_MODE=single-active
- MAX_CONCURRENT_MODELS=1
- MODEL_SWAP_TIMEOUT=300
- GPU_ENABLED=true
- NODE_ID=node-3-threadripper-rtx3090
volumes:
- ./services/swapper-service/config/swapper_config_node3.yaml:/app/config/swapper_config.yaml:ro
- ./logs:/app/logs
networks:
- dagi-network
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8890/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# Comfy Agent - Image & Video Generation Service
comfy-agent:
build:
context: ./services/comfy-agent
dockerfile: Dockerfile
args:
- BASE_IMAGE=microdao-daarion-comfy-agent:latest
container_name: comfy-agent-node3
ports:
- "8880:8880"
environment:
- COMFYUI_HTTP=http://host.docker.internal:8188
- COMFYUI_WS=ws://host.docker.internal:8188/ws
- NATS_URL=nats://144.76.224.179:4222
- NATS_SUBJECT_INVOKE=agent.invoke.comfy
- NATS_SUBJECT_IMAGE=comfy.request.image
- NATS_SUBJECT_VIDEO=comfy.request.video
- STORAGE_PATH=/data/comfy-results
- PUBLIC_BASE_URL=http://212.8.58.133:8880/files
- S3_ENDPOINT=144.76.224.179:9000
- S3_BUCKET=comfy-results
- S3_ACCESS_KEY=minioadmin
- S3_SECRET_KEY=minioadmin
- S3_SECURE=false
- S3_URL_TTL_S=900
- S3_PREFIX=node3
- LTX_CKPT_NAME=ltx-2-19b-distilled-fp8.safetensors
- LTX_TEXT_ENCODER=ltx2_gemma3_part1_spiece.safetensors
- LTX_DEVICE=default
- LTX_SAMPLER=euler
- LTX_MAX_SHIFT=2.05
- LTX_BASE_SHIFT=0.95
- LTX_TERMINAL=0.1
- LTX_STRETCH=true
- MAX_CONCURRENCY=1
volumes:
- comfy-results:/data/comfy-results
- ./logs:/app/logs
networks:
- dagi-network
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8880/healthz')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
networks:
dagi-network:
external: true
volumes:
comfy-results:
driver: local