Files
chatbot_v3/docker-compose.yml

75 lines
2.0 KiB
YAML

# Application-owned local infrastructure: Postgres, MinIO, Qdrant.
#
# Intentionally separate from docker-compose.langfuse.yml (different service
# names, volumes, and ports). Run alone for app development, or combine with
# Langfuse:
#
# docker compose \
# -f docker-compose.yml \
# -f docker-compose.langfuse.yml \
# --env-file .env \
# --env-file .env.langfuse \
# up -d
#
# Do not use this compose stack as-is for production.
services:
app-postgres:
image: docker.io/postgres:17
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER:-chatbot}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-chatbot}
POSTGRES_DB: ${POSTGRES_DB:-chatbot}
ports:
- 127.0.0.1:${POSTGRES_PORT:-5433}:5432
volumes:
- app_postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-chatbot}"]
interval: 3s
timeout: 3s
retries: 10
app-minio:
image: cgr.dev/chainguard/minio
restart: always
entrypoint: sh
command: -c 'mkdir -p /data/${MINIO_BUCKET:-chatbot-source-files} && minio server --address ":9000" --console-address ":9001" /data'
environment:
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-chatbot}
MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY:-chatbot-secret}
ports:
- 127.0.0.1:9100:9000
- 127.0.0.1:9101:9001
volumes:
- app_minio_data:/data
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 1s
timeout: 5s
retries: 5
start_period: 1s
app-qdrant:
image: docker.io/qdrant/qdrant
restart: always
ports:
- 127.0.0.1:6343:6333
- 127.0.0.1:6344:6334
volumes:
- app_qdrant_data:/qdrant/storage
healthcheck:
test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/6333' 2>/dev/null || exit 1"]
interval: 3s
timeout: 3s
retries: 10
start_period: 3s
volumes:
app_postgres_data:
driver: local
app_minio_data:
driver: local
app_qdrant_data:
driver: local