Files
rag_agent/rag-web-ui/docker-compose.yml

131 lines
2.6 KiB
YAML
Raw Permalink Normal View History

2026-04-13 11:34:23 +08:00
services:
backend:
build: ./backend
env_file:
- .env
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- MYSQL_SERVER=db
- CHROMA_DB_HOST=chromadb
- CHROMA_DB_PORT=8000
- MINIO_ENDPOINT=minio:9000
- NEO4J_URL=bolt://host.docker.internal:7687
volumes:
- ./backend:/app
- ./uploads:/app/uploads
networks:
- app_network
depends_on:
db:
condition: service_healthy
chromadb:
condition: service_started
minio:
condition: service_started
restart: on-failure
deploy:
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
frontend:
build: ./frontend
volumes:
- ./frontend:/app
- /app/node_modules
networks:
- app_network
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=ragagent
- MYSQL_USER=ragagent
- MYSQL_PASSWORD=ragagent
- TZ=Asia/Shanghai
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
networks:
- app_network
healthcheck:
test:
[
"CMD",
"mysqladmin",
"ping",
"-h",
"localhost",
"-u",
"$$MYSQL_USER",
"--password=$$MYSQL_PASSWORD",
]
interval: 5s
timeout: 5s
retries: 5
start_period: 10s
chromadb:
image: chromadb/chroma:latest
ports:
- "8001:8000"
volumes:
- chroma_data:/chroma/chroma
networks:
- app_network
# For Qdrant, Remove the comment and run the following command to start the service
# qdrant:
# image: qdrant/qdrant:latest
# ports:
# - "6333:6333" # REST API
# - "6334:6334" # GRPC
# volumes:
# - qdrant_data:/qdrant/storage
# environment:
# - QDRANT_ALLOW_RECOVERY_MODE=true
# networks:
# - app_network
minio:
image: minio/minio:latest
ports:
- "9000:9000" # API port
- "9001:9001" # Console port
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
volumes:
- minio_data:/data
command: server --console-address ":9001" /data
networks:
- app_network
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- frontend
- backend
- minio
networks:
- app_network
volumes:
mysql_data:
chroma_data:
minio_data:
# qdrant_data:
networks:
app_network:
driver: bridge