# 开发环境配置 - 只启动基础设施服务,app 和 frontend 在本地运行 services: # 只启动依赖的基础设施服务 postgres: image: paradedb/paradedb:v0.21.4-pg17 container_name: WeKnora-postgres-dev ports: - "${DB_PORT:-5432}:5432" environment: - POSTGRES_USER=${DB_USER} - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_DB=${DB_NAME} volumes: - postgres-data-dev:/var/lib/postgresql/data networks: - WeKnora-network-dev healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"] interval: 10s timeout: 10s retries: 3 start_period: 30s restart: unless-stopped stop_grace_period: 1m redis: image: redis:7.0-alpine container_name: WeKnora-redis-dev ports: - "${REDIS_PORT:-6379}:6379" volumes: - redis_data_dev:/data command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD} restart: always networks: - WeKnora-network-dev minio: image: minio/minio:latest container_name: WeKnora-minio-dev ports: - "${MINIO_PORT:-9000}:9000" - "${MINIO_CONSOLE_PORT:-9001}:9001" environment: - MINIO_ROOT_USER=${MINIO_ACCESS_KEY_ID:-minioadmin} - MINIO_ROOT_PASSWORD=${MINIO_SECRET_ACCESS_KEY:-minioadmin} command: server --console-address ":9001" /data volumes: - minio_data_dev:/data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 networks: - WeKnora-network-dev profiles: - minio - full qdrant: image: qdrant/qdrant:v1.16.2 container_name: WeKnora-qdrant-dev ports: - "${QDRANT_REST_PORT:-6333}:6333" - "${QDRANT_PORT:-6334}:6334" volumes: - qdrant_data_dev:/qdrant/storage networks: - WeKnora-network-dev restart: unless-stopped profiles: - qdrant - full neo4j: image: neo4j:latest container_name: WeKnora-neo4j-dev volumes: - neo4j-data-dev:/data environment: - NEO4J_AUTH=${NEO4J_USERNAME:-neo4j}/${NEO4J_PASSWORD:-password} - NEO4J_apoc_export_file_enabled=true - NEO4J_apoc_import_file_enabled=true - NEO4J_apoc_import_file_use__neo4j__config=true - NEO4JLABS_PLUGINS=["apoc"] ports: - "7474:7474" - "7687:7687" restart: always networks: - WeKnora-network-dev profiles: - neo4j - full docreader: image: wechatopenai/weknora-docreader:latest container_name: WeKnora-docreader-dev ports: - "${DOCREADER_PORT:-50051}:50051" environment: - MINIO_ENDPOINT=minio:9000 - STORAGE_TYPE=${STORAGE_TYPE:-} - MINIO_PUBLIC_ENDPOINT=http://localhost:${MINIO_PORT:-9000} - MINERU_ENDPOINT=${MINERU_ENDPOINT:-} - MAX_FILE_SIZE_MB=${MAX_FILE_SIZE_MB:-}} healthcheck: test: ["CMD", "grpc_health_probe", "-addr=:50051"] interval: 30s timeout: 10s retries: 3 start_period: 60s networks: - WeKnora-network-dev restart: unless-stopped extra_hosts: - "host.docker.internal:host-gateway" jaeger: image: jaegertracing/all-in-one:latest container_name: WeKnora-jaeger-dev ports: - "6831:6831/udp" - "6832:6832/udp" - "5778:5778" - "16686:16686" - "4317:4317" - "4318:4318" - "14250:14250" - "14268:14268" - "9411:9411" environment: - COLLECTOR_OTLP_ENABLED=true - COLLECTOR_ZIPKIN_HOST_PORT=:9411 volumes: - jaeger_data_dev:/var/lib/jaeger networks: - WeKnora-network-dev restart: unless-stopped profiles: - jaeger - full networks: WeKnora-network-dev: driver: bridge volumes: postgres-data-dev: redis_data_dev: minio_data_dev: neo4j-data-dev: jaeger_data_dev: qdrant_data_dev: