docs: 新增 Docker Compose 启动配置说明,调整 docker-compose.yml 配置

This commit is contained in:
begoniezhao
2025-11-18 17:30:26 +08:00
parent a625eff525
commit af620806e0
5 changed files with 184 additions and 167 deletions

View File

@@ -23,10 +23,6 @@ STORAGE_TYPE=local
# 流处理后端(memory/redis)
STREAM_MANAGER_TYPE=redis
# 主数据库配置
# 数据库端口默认为5432
DB_PORT=5432
# 应用服务端口默认为8080
APP_PORT=8080
@@ -46,9 +42,6 @@ DB_PASSWORD=postgres123!@#
DB_NAME=WeKnora
# 如果使用 redis 作为流处理后端,需要配置以下参数
# Redis端口默认为6379
REDIS_PORT=6379
# Redis密码如果没有设置密码可以留空
REDIS_PASSWORD=redis123!@#
@@ -66,9 +59,11 @@ TENANT_AES_KEY=weknorarag-api-key-secret-secret
# 是否开启知识图谱构建和检索(构建阶段需调用大模型,耗时较长)
ENABLE_GRAPH_RAG=false
MINIO_PORT=9000
# MinIO端口
# MINIO_PORT=9000
MINIO_CONSOLE_PORT=9001
# MinIO控制台端口
# MINIO_CONSOLE_PORT=9001
# Embedding并发数出现429错误时可调小此参数
CONCURRENCY_POOL_SIZE=5
@@ -132,79 +127,3 @@ COS_ENABLE_OLD_DOMAIN=true
# Neo4j的密码
# NEO4J_PASSWORD=password
##############################################################
###### 注意: 以下配置不再生效已在Web“配置初始化”阶段完成 #########
# # 初始化默认租户与知识库
# # 租户ID通常是一个字符串
# INIT_TEST_TENANT_ID=1
# # 知识库ID通常是一个字符串
# INIT_TEST_KNOWLEDGE_BASE_ID=kb-00000001
# # LLM Model
# # 使用的LLM模型名称
# # 默认使用 Ollama 的 Qwen3 8B 模型ollama 会自动处理模型下载和加载
# # 如果需要使用其他模型,请替换为实际的模型名称
# INIT_LLM_MODEL_NAME=qwen3:8b
# # LLM模型的访问地址
# # 支持第三方模型服务的URL
# # 如果使用 Ollama 的本地服务可以留空ollama 会自动处理
# # INIT_LLM_MODEL_BASE_URL=your_llm_model_base_url
# # LLM模型的API密钥如果需要身份验证可以设置
# # 支持第三方模型服务的API密钥
# # 如果使用 Ollama 的本地服务可以留空ollama 会自动处理
# # INIT_LLM_MODEL_API_KEY=your_llm_model_api_key
# # Embedding Model
# # 使用的Embedding模型名称
# # 默认使用 nomic-embed-text 模型,支持文本嵌入
# # 如果需要使用其他模型,请替换为实际的模型名称
# INIT_EMBEDDING_MODEL_NAME=nomic-embed-text
# # Embedding模型向量维度
# INIT_EMBEDDING_MODEL_DIMENSION=768
# # Embedding模型的ID通常是一个字符串
# INIT_EMBEDDING_MODEL_ID=builtin:nomic-embed-text:768
# # Embedding模型的访问地址
# # 支持第三方模型服务的URL
# # 如果使用 Ollama 的本地服务可以留空ollama 会自动处理
# # INIT_EMBEDDING_MODEL_BASE_URL=your_embedding_model_base_url
# # Embedding模型的API密钥如果需要身份验证可以设置
# # 支持第三方模型服务的API密钥
# # 如果使用 Ollama 的本地服务可以留空ollama 会自动处理
# # INIT_EMBEDDING_MODEL_API_KEY=your_embedding_model_api_key
# # Rerank Model(可选)
# # 对于rag来说使用Rerank模型对提升文档搜索的准确度有着重要作用
# # 目前 ollama 暂不支持运行 Rerank 模型
# # 使用的Rerank模型名称
# # INIT_RERANK_MODEL_NAME=your_rerank_model_name
# # Rerank模型的访问地址
# # 支持第三方模型服务的URL
# # INIT_RERANK_MODEL_BASE_URL=your_rerank_model_base_url
# # Rerank模型的API密钥如果需要身份验证可以设置
# # 支持第三方模型服务的API密钥
# # INIT_RERANK_MODEL_API_KEY=your_rerank_model_api_key
# # VLM_MODEL_NAME 使用的多模态模型名称
# # 用于解析图片数据
# # VLM_MODEL_NAME=your_vlm_model_name
# # VLM_MODEL_BASE_URL 使用的多模态模型访问地址
# # 支持第三方模型服务的URL
# # VLM_MODEL_BASE_URL=your_vlm_model_base_url
# # VLM_MODEL_API_KEY 使用的多模态模型API密钥
# # 支持第三方模型服务的API密钥
# # VLM_MODEL_API_KEY=your_vlm_model_api_key

View File

@@ -119,25 +119,58 @@ cp .env.example .env
# All variables are documented in the .env.example comments
```
#### ③ Start the services
#### ③ Start the services (include Ollama)
Check the images that need to be started in the .env file.
```bash
# Start all services (Ollama + backend containers)
./scripts/start_all.sh
# Or
```
or
```bash
make start-all
```
#### ③ Start the services (backup)
#### ③.0 Start ollama services (Optional)
```bash
# Start ollama services (Optional)
ollama serve > /dev/null 2>&1 &
```
# Start the service
#### ③.1 Activate different combinations of features
- Minimum core services
```bash
docker compose up -d
```
- All features enabled
```bash
docker-compose --profile full up -d
```
- Tracing logs required
```bash
docker-compose --profile jaeger up -d
```
- Neo4j knowledge graph required
```bash
docker-compose --profile neo4j up -d
```
- Minio file storage service required
```bash
docker-compose --profile minio up -d
```
- Multiple options combination
```bash
docker-compose --profile neo4j --profile minio up -d
```
#### ④ Stop the services
```bash

View File

@@ -119,25 +119,58 @@ cp .env.example .env
# 所有变量说明详见 .env.example 注释
```
#### ③ 启动服务
#### ③ 启动服务 (含 Ollama)
检查 .env 文件中需要启动的镜像。
```bash
# 启动全部服务(含 Ollama 与后端容器)
./scripts/start_all.sh
# 或
```
或者
```bash
make start-all
```
#### ③ 启动服务备选
#### ③.0 启动Ollama (可选)
```bash
# 启动 ollama 服务 (可选)
ollama serve > /dev/null 2>&1 &
```
# 启动服务
#### ③.1 激活不同组合的功能
- 启动最小功能
```bash
docker compose up -d
```
- 启动全部功能
```bash
docker-compose --profile full up -d
```
- 需要 tracing 日志
```bash
docker-compose --profile jaeger up -d
```
- 需要 neo4j 知识图谱
```bash
docker-compose --profile neo4j up -d
```
- 需要 minio 文件存储服务
```bash
docker-compose --profile minio up -d
```
- 多选项组合
```bash
docker-compose --profile neo4j --profile minio up -d
```
#### ④ 停止服务
```bash

View File

@@ -119,25 +119,58 @@ cp .env.example .env
# すべての変数の説明は.env.exampleのコメントを参照
```
#### ③ サービス起動
#### ③ サービス起動しますOllama を含む)
.env ファイルで、起動する必要があるイメージを確認します。
```bash
# すべてのサービスを起動Ollamaとバックエンドコンテナを含む
./scripts/start_all.sh
# または
```
または
```bash
make start-all
```
#### ③ サービス起動の代替方法
#### ③.0 ollama サービス起動する (オプション)
```bash
# ollamaサービスを起動オプション
ollama serve > /dev/null 2>&1 &
```
# サービスを起動
#### ③.1 さまざまな機能の組み合わせを有効にする
- 最小限のコアサービス
```bash
docker compose up -d
```
- すべての機能を有効にする
```bash
docker-compose --profile full up -d
```
- トレースログが必要
```bash
docker-compose --profile jaeger up -d
```
- Neo4j ナレッジグラフが必要
```bash
docker-compose --profile neo4j up -d
```
- Minio ファイルストレージサービスが必要
```bash
docker-compose --profile minio up -d
```
- 複数のオプションの組み合わせ
```bash
docker-compose --profile neo4j --profile minio up -d
```
#### ④ サービスの停止
```bash

View File

@@ -1,4 +1,17 @@
services:
frontend:
image: wechatopenai/weknora-ui:latest
build: ./frontend
container_name: WeKnora-frontend
ports:
- "${FRONTEND_PORT:-80}:80"
depends_on:
app:
condition: service_healthy
networks:
- WeKnora-network
restart: unless-stopped
app:
image: wechatopenai/weknora-app:latest
build:
@@ -79,50 +92,14 @@ services:
condition: service_started
postgres:
condition: service_healthy
minio:
condition: service_started
docreader:
condition: service_healthy
neo4j:
condition: service_started
networks:
- WeKnora-network
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
minio:
image: minio/minio:latest
container_name: WeKnora-minio
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:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
networks:
- WeKnora-network
frontend:
image: wechatopenai/weknora-ui:latest
container_name: WeKnora-frontend
ports:
- "${FRONTEND_PORT:-80}:80"
depends_on:
app:
condition: service_healthy
networks:
- WeKnora-network
restart: unless-stopped
docreader:
image: wechatopenai/weknora-docreader:latest
build:
@@ -162,35 +139,12 @@ services:
extra_hosts:
- "host.docker.internal:host-gateway"
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "6831:6831/udp" # Jaeger Thrift接收器
- "6832:6832/udp" # Jaeger Thrift接收器(Compact)
- "5778:5778" # 配置端口
- "16686:16686" # Web UI
- "4317:4317" # OTLP gRPC接收器
- "4318:4318" # OTLP HTTP接收器
- "14250:14250" # 接收模型端口
- "14268:14268" # Jaeger HTTP接收器
- "9411:9411" # Zipkin兼容性端口
environment:
- COLLECTOR_OTLP_ENABLED=true
- COLLECTOR_ZIPKIN_HOST_PORT=:9411
volumes:
- jaeger_data:/var/lib/jaeger # 持久化 Jaeger 数据
networks:
- WeKnora-network
restart: unless-stopped
# 修改的PostgreSQL配置
postgres:
image: paradedb/paradedb:v0.18.9-pg17
container_name: WeKnora-postgres
ports:
- "${DB_PORT}:5432"
environment:
- POSTGRES_USER=${DB_USER}
# NOCC:hardcode-password(工具误报)
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=${DB_NAME}
volumes:
@@ -212,15 +166,58 @@ services:
redis:
image: redis:7.0-alpine
container_name: WeKnora-redis
ports:
- "${REDIS_PORT}:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}
restart: always
networks:
- WeKnora-network
minio:
image: minio/minio:latest
container_name: WeKnora-minio
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:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
networks:
- WeKnora-network
profiles:
- minio
- full
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "6831:6831/udp" # Jaeger Thrift接收器
- "6832:6832/udp" # Jaeger Thrift接收器(Compact)
- "5778:5778" # 配置端口
- "16686:16686" # Web UI
- "4317:4317" # OTLP gRPC接收器
- "4318:4318" # OTLP HTTP接收器
- "14250:14250" # 接收模型端口
- "14268:14268" # Jaeger HTTP接收器
- "9411:9411" # Zipkin兼容性端口
environment:
- COLLECTOR_OTLP_ENABLED=true
- COLLECTOR_ZIPKIN_HOST_PORT=:9411
volumes:
- jaeger_data:/var/lib/jaeger # 持久化 Jaeger 数据
networks:
- WeKnora-network
restart: unless-stopped
profiles:
- jaeger
- full
neo4j:
image: neo4j:latest
container_name: WeKnora-neo4j
@@ -238,6 +235,9 @@ services:
restart: always
networks:
- WeKnora-network
profiles:
- neo4j
- full
networks:
WeKnora-network:
@@ -247,6 +247,5 @@ volumes:
postgres-data:
data-files:
jaeger_data:
redis_data:
minio_data:
neo4j-data: