| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- version: '3.8'
- services:
- # RAG 应用服务(开发模式)
- app:
- container_name: rag-system-app-dev
- build:
- context: ..
- dockerfile: docker/Dockerfile
- target: development # 使用开发环境镜像
- restart: unless-stopped
- ports:
- - "8000:8000"
- volumes:
- - ../.env:/app/.env:ro # 只读挂载环境变量
- - ../src:/app/src # 挂载源码以支持热重载
- - ../tests:/app/tests # 挂载测试代码
- - ../logs:/app/logs # 日志目录
- environment:
- - TZ=Asia/Shanghai
- - DEBUG=true
- - LOG_LEVEL=DEBUG
- - DB_HOST=postgres
- - INFINITY_HOST=infinity
- - REDIS_HOST=redis
- depends_on:
- postgres:
- condition: service_healthy
- infinity:
- condition: service_started
- redis:
- condition: service_healthy
- networks:
- - rag-network
- command: uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload
- # PostgreSQL 数据库
- postgres:
- image: postgres:15-alpine
- container_name: rag-system-postgres-dev
- restart: unless-stopped
- ports:
- - "5432:5432"
- environment:
- - POSTGRES_DB=rag_system_dev
- - POSTGRES_USER=rag_user
- - POSTGRES_PASSWORD=rag_password
- - TZ=Asia/Shanghai
- volumes:
- - postgres-dev-data:/var/lib/postgresql/data
- - ../doc/sql:/docker-entrypoint-initdb.d:ro
- networks:
- - rag-network
- healthcheck:
- test: ["CMD-SHELL", "pg_isready -U rag_user -d rag_system_dev"]
- interval: 10s
- timeout: 5s
- retries: 5
- # Infinity 向量数据库
- infinity:
- image: infiniflow/infinity:latest
- container_name: rag-system-infinity-dev
- restart: unless-stopped
- ports:
- - "23817:23817"
- volumes:
- - infinity-dev-data:/var/infinity/data
- environment:
- - TZ=Asia/Shanghai
- networks:
- - rag-network
- # Redis 缓存
- redis:
- image: redis:7-alpine
- container_name: rag-system-redis-dev
- restart: unless-stopped
- ports:
- - "6379:6379"
- volumes:
- - redis-dev-data:/data
- command: redis-server --appendonly yes
- networks:
- - rag-network
- healthcheck:
- test: ["CMD", "redis-cli", "ping"]
- interval: 10s
- timeout: 5s
- retries: 5
- # pgAdmin(数据库管理工具)
- pgadmin:
- image: dpage/pgadmin4:latest
- container_name: rag-system-pgadmin
- restart: unless-stopped
- ports:
- - "5050:80"
- environment:
- - PGADMIN_DEFAULT_EMAIL=admin@example.com
- - PGADMIN_DEFAULT_PASSWORD=admin
- - TZ=Asia/Shanghai
- volumes:
- - pgadmin-data:/var/lib/pgadmin
- networks:
- - rag-network
- depends_on:
- - postgres
- volumes:
- postgres-dev-data:
- driver: local
- infinity-dev-data:
- driver: local
- redis-dev-data:
- driver: local
- pgadmin-data:
- driver: local
- networks:
- rag-network:
- driver: bridge
|