feat: docker integration

This commit is contained in:
zin
2026-06-02 19:18:37 +00:00
parent 4c86d30657
commit 875616730b
6 changed files with 194 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
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]