/
storeksfeed
/
RAG-Bot
Обзор
Документация
Войти
/
storeksfeed
/
RAG-Bot
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
docker-compose.yml
234 строки
7 KB
Semyon Glazyrin
Updated some Docker-related files
01 май 2026, 13:41
Верифицирован
01 май 2026, 13:41
a2e9a74
Код
Авторство
О чём код?
services: # ============================================================================= # DATABASE SERVICES # ============================================================================= # PostgreSQL - for Django, KV and Doc Status storage postgres: image: postgres:15.15 container_name: postgres ports: - "127.0.0.1:5432:5432" volumes: - postgres_data:/var/lib/postgresql/data environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DATABASE} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DATABASE}"] interval: 10s timeout: 5s retries: 5 start_period: 30s restart: unless-stopped # Qdrant - for vector storage qdrant: image: qdrant/qdrant:v1.16 container_name: qdrant ports: - "127.0.0.1:6333:6333" # REST API - "127.0.0.1:6334:6334" # gRPC API volumes: - qdrant_data:/qdrant/storage healthcheck: test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/127.0.0.1/6333 && echo -e \"GET /readyz HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n\" >&3 && grep -q \"HTTP/1.1 200\" <&3'"] interval: 10s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped # Neo4j - for graph storage neo4j: image: neo4j:5.15.0 container_name: neo4j ports: - "127.0.0.1:7474:7474" # HTTP - "127.0.0.1:7687:7687" # Bolt volumes: - neo4j_data:/data - neo4j_logs:/logs environment: # Authentication: format is username/password - NEO4J_AUTH=${NEO4J_USERNAME}/${NEO4J_PASSWORD} # # Enable APOC plugin (Advanced Procedures On Cypher - utility library for Neo4j) # - NEO4J_PLUGINS=["apoc"] # # Allow APOC procedures to run without security restrictions # - NEO4J_dbms_security_procedures_unrestricted=apoc.* # # Whitelist APOC procedures (allows all apoc.* procedures) # - NEO4J_dbms_security_procedures_allowlist=apoc.* healthcheck: test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/127.0.0.1/7474 && echo -e \"GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n\" >&3 && grep -q \"HTTP/1.1 200\" <&3'"] interval: 10s timeout: 5s retries: 5 start_period: 30s restart: unless-stopped # ============================================================================= # LLAMA.CPP SERVICES (GPU-accelerated) # ============================================================================= # Embedding service llamacpp-embed: build: context: . dockerfile: Dockerfile.llamacpp image: llamacpp:latest container_name: llamacpp-embed ports: - "127.0.0.1:8080:8080" volumes: - ./models:/models command: > --model /models/user-bge-m3-q8_0.gguf --host 0.0.0.0 --port 8080 --embedding --pooling mean --ctx-size 8192 --batch-size 2048 --ubatch-size 2048 --n-gpu-layers 99 --log-disable # GPU access deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] healthcheck: test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/127.0.0.1/8080 && echo -e \"GET /health HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n\" >&3 && grep -q \"HTTP/1.1 200\" <&3'"] interval: 30s timeout: 10s retries: 3 start_period: 60s restart: unless-stopped # LLM service llamacpp-llm: image: llamacpp:latest container_name: llamacpp-llm ports: - "127.0.0.1:8081:8080" volumes: - ./models:/models command: > --model /models/qwen3-14b-q4_k_m.gguf --host 0.0.0.0 --port 8080 --ctx-size 32768 --batch-size 512 --ubatch-size 1024 --n-gpu-layers 99 --threads 12 --cont-batching --log-disable --jinja --flash-attn auto --no-context-shift # GPU access deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] healthcheck: test: ["CMD-SHELL", "curl -f http://8080/health || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 60s restart: unless-stopped # ============================================================================= # LIGHTRAG SERVICE # ============================================================================= lightrag: build: context: . dockerfile: Dockerfile.lightrag container_name: lightrag ports: - "127.0.0.1:9621:9621" env_file: - .env # Wait for all required services to be healthy depends_on: postgres: condition: service_healthy qdrant: condition: service_healthy neo4j: condition: service_healthy llamacpp-embed: condition: service_healthy llamacpp-llm: condition: service_healthy healthcheck: test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/127.0.0.1/9621 && echo -e \"GET /health HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n\" >&3 && grep -q \"HTTP/1.1 200\" <&3'"] interval: 30s timeout: 10s retries: 3 start_period: 30s restart: unless-stopped # ============================================================================= # APP SERVICES # ============================================================================= # Django admin interface app-admin: build: context: . dockerfile: Dockerfile.app image: app:latest container_name: app-admin ports: - "127.0.0.1:8000:8000" env_file: - .env command: /bin/sh -c "python manage.py collectstatic --noinput && python manage.py runserver 0.0.0.0:8000" depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD-SHELL", "pgrep -f 'python manage.py runserver' || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s restart: unless-stopped # Bot worker app-bot: image: app:latest container_name: app-bot env_file: - .env command: python manage.py runbot vk depends_on: postgres: condition: service_healthy lightrag: condition: service_healthy healthcheck: test: ["CMD-SHELL", "pgrep -f 'python manage.py runbot' || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s restart: unless-stopped volumes: postgres_data: qdrant_data: neo4j_data: neo4j_logs: