64 lines
2.3 KiB
YAML
64 lines
2.3 KiB
YAML
version: '3.8'
|
|
|
|
# Определение общих сетей для изоляции трафика
|
|
networks:
|
|
ai_mesh:
|
|
driver: bridge
|
|
|
|
services:
|
|
# ----------------------------------------------------
|
|
# SERVICE 1: Frontend (Пользовательский интерфейс)
|
|
# Не требует GPU, может быть вынесен на отдельный сервер
|
|
# ----------------------------------------------------
|
|
web_ui:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: emom_frontend
|
|
restart: always
|
|
ports:
|
|
- "8080:8080"
|
|
networks:
|
|
- ai_mesh
|
|
environment:
|
|
- STREAMLIT_RUN=1
|
|
# Указываем UI, где искать LLM-бэкенд (внутри Docker-сети)
|
|
- OLLAMA_HOST=http://llm_backend:11434
|
|
volumes:
|
|
- ./src:/app/src
|
|
# Модели пока остаются здесь, так как код монолитный,
|
|
# но архитектурно сервис уже изолирован
|
|
- /home/zin/projects/Thesis/src/emoset_resnet50_best.pth:/app/emoset_resnet50_best.pth:ro
|
|
- /home/zin/projects/Thesis/src/music_engine/va_regressor.pkl:/app/src/music_engine/va_regressor.pkl:ro
|
|
- /home/zin/projects/Thesis/dataset/DEAM:/app/dataset/DEAM:ro
|
|
# Временно оставляем GPU для PyTorch (пока он не вынесен в API)
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
|
|
# ----------------------------------------------------
|
|
# SERVICE 2: LLM Inference Backend (Ollama)
|
|
# Изолированный сервис для языковой модели на GPU
|
|
# ----------------------------------------------------
|
|
llm_backend:
|
|
image: ollama/ollama:latest
|
|
container_name: ollama_gpu_inference
|
|
restart: always
|
|
networks:
|
|
- ai_mesh
|
|
ports:
|
|
- "11434:11434"
|
|
volumes:
|
|
# Проброс локальных моделей Ollama, чтобы не качать их заново внутри докера
|
|
- ~/.ollama:/root/.ollama
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu] |