115 lines
2.5 KiB
YAML
115 lines
2.5 KiB
YAML
services:
|
|
# --- PostgreSQL (pgvector) ---
|
|
postgres:
|
|
image: pgvector/pgvector:pg17
|
|
container_name: rag-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: rag
|
|
POSTGRES_USER: rag
|
|
POSTGRES_PASSWORD: rag123
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
- ./docker/initdb:/docker-entrypoint-initdb.d
|
|
networks:
|
|
- rag-network
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U rag -d rag"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# --- Redis ---
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: rag-redis
|
|
restart: unless-stopped
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redisdata:/data
|
|
networks:
|
|
- rag-network
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# --- RabbitMQ ---
|
|
rabbitmq:
|
|
image: rabbitmq:3-management
|
|
container_name: rag-rabbitmq
|
|
restart: unless-stopped
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: rag
|
|
RABBITMQ_DEFAULT_PASS: rag123
|
|
ports:
|
|
- "5672:5672"
|
|
- "15672:15672"
|
|
volumes:
|
|
- rabbitdata:/var/lib/rabbitmq
|
|
networks:
|
|
- rag-network
|
|
healthcheck:
|
|
test: ["CMD", "rabbitmq-diagnostics", "check_port_connectivity"]
|
|
interval: 10s
|
|
timeout: 10s
|
|
retries: 5
|
|
|
|
# --- MongoDB (im-system) ---
|
|
mongo:
|
|
image: mongo:7
|
|
container_name: rag-mongo
|
|
restart: unless-stopped
|
|
environment:
|
|
MONGO_INITDB_ROOT_USERNAME: mongo
|
|
MONGO_INITDB_ROOT_PASSWORD: mongo123
|
|
ports:
|
|
- "27017:27017"
|
|
volumes:
|
|
- mongodata:/data/db
|
|
networks:
|
|
- rag-network
|
|
healthcheck:
|
|
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# --- RustFS (S3 compatible, file-system) ---
|
|
rustfs:
|
|
image: rustfs/rustfs:latest
|
|
container_name: rag-rustfs
|
|
restart: unless-stopped
|
|
environment:
|
|
RUSTFS_ROOT_USER: minioadmin
|
|
RUSTFS_ROOT_PASSWORD: minioadmin
|
|
command: server /data --console-address ":9001"
|
|
ports:
|
|
- "9000:9000"
|
|
- "9001:9001"
|
|
volumes:
|
|
- rustfsdata:/data
|
|
networks:
|
|
- rag-network
|
|
healthcheck:
|
|
test: ["CMD", "sh", "-c", "nc -z localhost 9000"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 10s
|
|
|
|
volumes:
|
|
pgdata:
|
|
redisdata:
|
|
rabbitdata:
|
|
mongodata:
|
|
rustfsdata:
|
|
|
|
networks:
|
|
rag-network:
|
|
driver: bridge
|