mirror of
https://github.com/Tencent/WeKnora.git
synced 2025-11-25 03:15:00 +08:00
feat: Adjust App & Docreader log output
This commit is contained in:
13
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
13
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -49,15 +49,7 @@ body:
|
||||
|
||||
请按照以下步骤收集相关日志:
|
||||
|
||||
**1. 应用模块日志:**
|
||||
```bash
|
||||
docker exec -it WeKnora-app tail -f /var/log/WeKnora.log
|
||||
```
|
||||
|
||||
**2. 文档解析模块日志:**
|
||||
```bash
|
||||
docker exec -it WeKnora-docreader tail -f /var/log/docreader.log
|
||||
```
|
||||
docker compose logs -f --tail=1000 app docreader postgres
|
||||
|
||||
请重现问题并收集相关日志,然后粘贴到下面的日志字段中。
|
||||
|
||||
@@ -68,8 +60,7 @@ body:
|
||||
description: 请按照上面的指南收集并粘贴相关日志
|
||||
placeholder: |
|
||||
请粘贴从以下命令收集的日志:
|
||||
- docker exec -it WeKnora-app tail -f /var/log/WeKnora.log
|
||||
- docker exec -it WeKnora-docreader tail -f /var/log/docreader.log
|
||||
docker compose logs -f --tail=1000 app docreader postgres
|
||||
render: shell
|
||||
|
||||
- type: input
|
||||
|
||||
8
.github/ISSUE_TEMPLATE/question.yml
vendored
8
.github/ISSUE_TEMPLATE/question.yml
vendored
@@ -68,14 +68,8 @@ body:
|
||||
|
||||
如果问题涉及错误或需要调试,请收集相关日志:
|
||||
|
||||
**应用模块日志:**
|
||||
```bash
|
||||
docker exec -it WeKnora-app tail -f /var/log/WeKnora.log
|
||||
```
|
||||
|
||||
**文档解析模块日志:**
|
||||
```bash
|
||||
docker exec -it WeKnora-docreader tail -f /var/log/docreader.log
|
||||
docker compose logs -f --tail=1000 app docreader postgres
|
||||
```
|
||||
|
||||
- type: textarea
|
||||
|
||||
@@ -14,20 +14,20 @@ services:
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
environment:
|
||||
- COS_SECRET_ID=${COS_SECRET_ID}
|
||||
- COS_SECRET_KEY=${COS_SECRET_KEY}
|
||||
- COS_REGION=${COS_REGION}
|
||||
- COS_BUCKET_NAME=${COS_BUCKET_NAME}
|
||||
- COS_APP_ID=${COS_APP_ID}
|
||||
- COS_PATH_PREFIX=${COS_PATH_PREFIX}
|
||||
- COS_ENABLE_OLD_DOMAIN=${COS_ENABLE_OLD_DOMAIN}
|
||||
- GIN_MODE=${GIN_MODE}
|
||||
- COS_SECRET_ID=${COS_SECRET_ID:-}
|
||||
- COS_SECRET_KEY=${COS_SECRET_KEY:-}
|
||||
- COS_REGION=${COS_REGION:-}
|
||||
- COS_BUCKET_NAME=${COS_BUCKET_NAME:-}
|
||||
- COS_APP_ID=${COS_APP_ID:-}
|
||||
- COS_PATH_PREFIX=${COS_PATH_PREFIX:-}
|
||||
- COS_ENABLE_OLD_DOMAIN=${COS_ENABLE_OLD_DOMAIN:-}
|
||||
- GIN_MODE=${GIN_MODE:-}
|
||||
- DB_DRIVER=postgres
|
||||
- DB_HOST=postgres
|
||||
- DB_PORT=5432
|
||||
- DB_USER=${DB_USER}
|
||||
- DB_PASSWORD=${DB_PASSWORD}
|
||||
- DB_NAME=${DB_NAME}
|
||||
- DB_USER=${DB_USER:-}
|
||||
- DB_PASSWORD=${DB_PASSWORD:-}
|
||||
- DB_NAME=${DB_NAME:-}
|
||||
- TZ=Asia/Shanghai
|
||||
- OTEL_EXPORTER_OTLP_ENDPOINT=jaeger:4317
|
||||
- OTEL_SERVICE_NAME=WeKnora
|
||||
@@ -35,38 +35,38 @@ services:
|
||||
- OTEL_METRICS_EXPORTER=none
|
||||
- OTEL_LOGS_EXPORTER=none
|
||||
- OTEL_PROPAGATORS=tracecontext,baggage
|
||||
- RETRIEVE_DRIVER=${RETRIEVE_DRIVER}
|
||||
- ELASTICSEARCH_ADDR=${ELASTICSEARCH_ADDR}
|
||||
- ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME}
|
||||
- ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD}
|
||||
- ELASTICSEARCH_INDEX=${ELASTICSEARCH_INDEX}
|
||||
- RETRIEVE_DRIVER=${RETRIEVE_DRIVER:-}
|
||||
- ELASTICSEARCH_ADDR=${ELASTICSEARCH_ADDR:-}
|
||||
- ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME:-}
|
||||
- ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD:-}
|
||||
- ELASTICSEARCH_INDEX=${ELASTICSEARCH_INDEX:-}
|
||||
- DOCREADER_ADDR=docreader:50051
|
||||
- STORAGE_TYPE=${STORAGE_TYPE}
|
||||
- LOCAL_STORAGE_BASE_DIR=${LOCAL_STORAGE_BASE_DIR}
|
||||
- STORAGE_TYPE=${STORAGE_TYPE:-}
|
||||
- LOCAL_STORAGE_BASE_DIR=${LOCAL_STORAGE_BASE_DIR:-}
|
||||
- MINIO_ENDPOINT=minio:9000
|
||||
- MINIO_ACCESS_KEY_ID=${MINIO_ACCESS_KEY_ID:-minioadmin}
|
||||
- MINIO_SECRET_ACCESS_KEY=${MINIO_SECRET_ACCESS_KEY:-minioadmin}
|
||||
- MINIO_BUCKET_NAME=${MINIO_BUCKET_NAME}
|
||||
- MINIO_BUCKET_NAME=${MINIO_BUCKET_NAME:-}
|
||||
- OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://host.docker.internal:11434}
|
||||
- STREAM_MANAGER_TYPE=${STREAM_MANAGER_TYPE}
|
||||
- STREAM_MANAGER_TYPE=${STREAM_MANAGER_TYPE:-}
|
||||
- REDIS_ADDR=redis:6379
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
||||
- REDIS_DB=${REDIS_DB}
|
||||
- REDIS_PREFIX=${REDIS_PREFIX}
|
||||
- ENABLE_GRAPH_RAG=${ENABLE_GRAPH_RAG}
|
||||
- TENANT_AES_KEY=${TENANT_AES_KEY}
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
|
||||
- REDIS_DB=${REDIS_DB:-}
|
||||
- REDIS_PREFIX=${REDIS_PREFIX:-}
|
||||
- ENABLE_GRAPH_RAG=${ENABLE_GRAPH_RAG:-}
|
||||
- TENANT_AES_KEY=${TENANT_AES_KEY:-}
|
||||
- CONCURRENCY_POOL_SIZE=${CONCURRENCY_POOL_SIZE:-5}
|
||||
- INIT_LLM_MODEL_NAME=${INIT_LLM_MODEL_NAME}
|
||||
- INIT_LLM_MODEL_BASE_URL=${INIT_LLM_MODEL_BASE_URL}
|
||||
- INIT_LLM_MODEL_API_KEY=${INIT_LLM_MODEL_API_KEY}
|
||||
- INIT_EMBEDDING_MODEL_NAME=${INIT_EMBEDDING_MODEL_NAME}
|
||||
- INIT_EMBEDDING_MODEL_BASE_URL=${INIT_EMBEDDING_MODEL_BASE_URL}
|
||||
- INIT_EMBEDDING_MODEL_API_KEY=${INIT_EMBEDDING_MODEL_API_KEY}
|
||||
- INIT_EMBEDDING_MODEL_DIMENSION=${INIT_EMBEDDING_MODEL_DIMENSION}
|
||||
- INIT_EMBEDDING_MODEL_ID=${INIT_EMBEDDING_MODEL_ID}
|
||||
- INIT_RERANK_MODEL_NAME=${INIT_RERANK_MODEL_NAME}
|
||||
- INIT_RERANK_MODEL_BASE_URL=${INIT_RERANK_MODEL_BASE_URL}
|
||||
- INIT_RERANK_MODEL_API_KEY=${INIT_RERANK_MODEL_API_KEY}
|
||||
- INIT_LLM_MODEL_NAME=${INIT_LLM_MODEL_NAME:-}
|
||||
- INIT_LLM_MODEL_BASE_URL=${INIT_LLM_MODEL_BASE_URL:-}
|
||||
- INIT_LLM_MODEL_API_KEY=${INIT_LLM_MODEL_API_KEY:-}
|
||||
- INIT_EMBEDDING_MODEL_NAME=${INIT_EMBEDDING_MODEL_NAME:-}
|
||||
- INIT_EMBEDDING_MODEL_BASE_URL=${INIT_EMBEDDING_MODEL_BASE_URL:-}
|
||||
- INIT_EMBEDDING_MODEL_API_KEY=${INIT_EMBEDDING_MODEL_API_KEY:-}
|
||||
- INIT_EMBEDDING_MODEL_DIMENSION=${INIT_EMBEDDING_MODEL_DIMENSION:-}
|
||||
- INIT_EMBEDDING_MODEL_ID=${INIT_EMBEDDING_MODEL_ID:-}
|
||||
- INIT_RERANK_MODEL_NAME=${INIT_RERANK_MODEL_NAME:-}
|
||||
- INIT_RERANK_MODEL_BASE_URL=${INIT_RERANK_MODEL_BASE_URL:-}
|
||||
- INIT_RERANK_MODEL_API_KEY=${INIT_RERANK_MODEL_API_KEY:-}
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_started
|
||||
@@ -120,24 +120,24 @@ services:
|
||||
ports:
|
||||
- "${DOCREADER_PORT:-50051}:50051"
|
||||
environment:
|
||||
- COS_SECRET_ID=${COS_SECRET_ID}
|
||||
- COS_SECRET_KEY=${COS_SECRET_KEY}
|
||||
- COS_REGION=${COS_REGION}
|
||||
- COS_BUCKET_NAME=${COS_BUCKET_NAME}
|
||||
- COS_APP_ID=${COS_APP_ID}
|
||||
- COS_PATH_PREFIX=${COS_PATH_PREFIX}
|
||||
- COS_ENABLE_OLD_DOMAIN=${COS_ENABLE_OLD_DOMAIN}
|
||||
- VLM_MODEL_BASE_URL=${VLM_MODEL_BASE_URL}
|
||||
- VLM_MODEL_NAME=${VLM_MODEL_NAME}
|
||||
- VLM_MODEL_API_KEY=${VLM_MODEL_API_KEY}
|
||||
- STORAGE_TYPE=${STORAGE_TYPE}
|
||||
- COS_SECRET_ID=${COS_SECRET_ID:-}
|
||||
- COS_SECRET_KEY=${COS_SECRET_KEY:-}
|
||||
- COS_REGION=${COS_REGION:-}
|
||||
- COS_BUCKET_NAME=${COS_BUCKET_NAME:-}
|
||||
- COS_APP_ID=${COS_APP_ID:-}
|
||||
- COS_PATH_PREFIX=${COS_PATH_PREFIX:-}
|
||||
- COS_ENABLE_OLD_DOMAIN=${COS_ENABLE_OLD_DOMAIN:-}
|
||||
- VLM_MODEL_BASE_URL=${VLM_MODEL_BASE_URL:-}
|
||||
- VLM_MODEL_NAME=${VLM_MODEL_NAME:-}
|
||||
- VLM_MODEL_API_KEY=${VLM_MODEL_API_KEY:-}
|
||||
- STORAGE_TYPE=${STORAGE_TYPE:-}
|
||||
- MINIO_PUBLIC_ENDPOINT=http://localhost:${MINIO_PORT:-9000}
|
||||
- MINIO_ENDPOINT=minio:9000
|
||||
- MINIO_ACCESS_KEY_ID=${MINIO_ACCESS_KEY_ID:-minioadmin}
|
||||
- MINIO_SECRET_ACCESS_KEY=${MINIO_SECRET_ACCESS_KEY:-minioadmin}
|
||||
- MINIO_BUCKET_NAME=${MINIO_BUCKET_NAME}
|
||||
- MINIO_USE_SSL=${MINIO_USE_SSL}
|
||||
- WEB_PROXY=${WEB_PROXY}
|
||||
- MINIO_BUCKET_NAME=${MINIO_BUCKET_NAME:-}
|
||||
- MINIO_USE_SSL=${MINIO_USE_SSL:-}
|
||||
- WEB_PROXY=${WEB_PROXY:-}
|
||||
healthcheck:
|
||||
test: ["CMD", "grpc_health_probe", "-addr=:50051"]
|
||||
interval: 30s
|
||||
|
||||
@@ -39,7 +39,7 @@ WORKDIR /app
|
||||
# Install runtime dependencies
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \
|
||||
apk update && apk upgrade && \
|
||||
apk add --no-cache build-base postgresql-client mysql-client ca-certificates tzdata sed curl bash supervisor vim wget
|
||||
apk add --no-cache build-base postgresql-client mysql-client ca-certificates tzdata sed curl bash vim wget
|
||||
|
||||
# Copy the binary from the builder stage
|
||||
COPY --from=builder /app/WeKnora .
|
||||
@@ -55,10 +55,6 @@ COPY --from=builder /go/pkg/mod/github.com/yanyiwu /go/pkg/mod/github.com/yanyiw
|
||||
# Make scripts executable
|
||||
RUN chmod +x ./scripts/*.sh
|
||||
|
||||
# Setup supervisor configuration
|
||||
RUN mkdir -p /etc/supervisor.d/
|
||||
COPY docker/config/supervisord.conf /etc/supervisor.d/supervisord.conf
|
||||
|
||||
# Expose ports
|
||||
EXPOSE 8080
|
||||
|
||||
@@ -70,5 +66,7 @@ RUN mkdir -p /data/files && \
|
||||
adduser -D -g '' appuser && \
|
||||
chown -R appuser:appuser /app /data/files
|
||||
|
||||
# Run supervisor instead of direct application start
|
||||
CMD ["supervisord", "-c", "/etc/supervisor.d/supervisord.conf"]
|
||||
# Switch to non-root user and run the application directly
|
||||
USER appuser
|
||||
|
||||
CMD ["./WeKnora"]
|
||||
@@ -102,7 +102,6 @@ RUN apt-get update && apt-get install -y \
|
||||
libgl1 \
|
||||
libglib2.0-0 \
|
||||
antiword \
|
||||
supervisor \
|
||||
vim \
|
||||
tar \
|
||||
dpkg \
|
||||
@@ -137,12 +136,8 @@ COPY --from=builder /app/src /app/src
|
||||
ENV PYTHONPATH=/app/src
|
||||
RUN cd /app/src && python -m download_deps
|
||||
|
||||
# 创建supervisor配置
|
||||
RUN mkdir -p /etc/supervisor/conf.d
|
||||
COPY services/docreader/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
|
||||
# 暴露 gRPC 端口
|
||||
EXPOSE 50051
|
||||
|
||||
# 使用supervisor启动服务
|
||||
CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||
# 直接运行 Python 服务(日志输出到 stdout/stderr)
|
||||
CMD ["python", "/app/src/server/server.py"]
|
||||
@@ -2,11 +2,7 @@
|
||||
|
||||
## 1. 如何查看日志?
|
||||
```bash
|
||||
# 查看 主服务 日志
|
||||
docker exec -it WeKnora-app tail -f /var/log/WeKnora.log
|
||||
|
||||
# 查看 文档解析模块 日志
|
||||
docker exec -it WeKnora-docreader tail -f /var/log/docreader.log
|
||||
docker compose logs -f app docreader postgres
|
||||
```
|
||||
|
||||
## 2. 如何启动和停止服务?
|
||||
|
||||
@@ -18,8 +18,8 @@ SCRIPT_NAME=$(basename "$0")
|
||||
|
||||
# 显示帮助信息
|
||||
show_help() {
|
||||
echo -e "${GREEN}WeKnora 启动脚本 v${VERSION}${NC}"
|
||||
echo -e "${GREEN}用法:${NC} $0 [选项]"
|
||||
printf "%b\n" "${GREEN}WeKnora 启动脚本 v${VERSION}${NC}"
|
||||
printf "%b\n" "${GREEN}用法:${NC} $0 [选项]"
|
||||
echo "选项:"
|
||||
echo " -h, --help 显示帮助信息"
|
||||
echo " -o, --ollama 启动Ollama服务"
|
||||
@@ -37,25 +37,25 @@ show_help() {
|
||||
|
||||
# 显示版本信息
|
||||
show_version() {
|
||||
echo -e "${GREEN}WeKnora 启动脚本 v${VERSION}${NC}"
|
||||
printf "%b\n" "${GREEN}WeKnora 启动脚本 v${VERSION}${NC}"
|
||||
exit 0
|
||||
}
|
||||
|
||||
# 日志函数
|
||||
log_info() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
printf "%b\n" "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
log_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
printf "%b\n" "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
printf "%b\n" "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
log_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
printf "%b\n" "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
# 选择可用的 Docker Compose 命令(优先 docker compose,其次 docker-compose)
|
||||
@@ -397,7 +397,7 @@ list_containers() {
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
# 列出所有容器
|
||||
echo -e "${BLUE}当前正在运行的容器:${NC}"
|
||||
printf "%b\n" "${BLUE}当前正在运行的容器:${NC}"
|
||||
"$DOCKER_COMPOSE_BIN" $DOCKER_COMPOSE_SUBCMD ps --services | sort
|
||||
|
||||
return 0
|
||||
@@ -703,20 +703,26 @@ else
|
||||
if [ "$START_OLLAMA" = true ] && [ "$START_DOCKER" = true ]; then
|
||||
if [ $OLLAMA_RESULT -eq 0 ] && [ $DOCKER_RESULT -eq 0 ]; then
|
||||
log_success "所有服务启动完成,可通过以下地址访问:"
|
||||
echo -e "${GREEN} - 前端界面: http://localhost:${FRONTEND_PORT:-80}${NC}"
|
||||
echo -e "${GREEN} - API接口: http://localhost:${APP_PORT:-8080}${NC}"
|
||||
echo -e "${GREEN} - Jaeger链路追踪: http://localhost:16686${NC}"
|
||||
printf "%b\n" "${GREEN} - 前端界面: http://localhost:${FRONTEND_PORT:-80}${NC}"
|
||||
printf "%b\n" "${GREEN} - API接口: http://localhost:${APP_PORT:-8080}${NC}"
|
||||
printf "%b\n" "${GREEN} - Jaeger链路追踪: http://localhost:16686${NC}"
|
||||
echo ""
|
||||
log_info "正在持续输出容器日志(按 Ctrl+C 退出日志,容器不会停止)..."
|
||||
"$DOCKER_COMPOSE_BIN" $DOCKER_COMPOSE_SUBCMD logs app docreader postgres --since=10s -f
|
||||
else
|
||||
log_error "部分服务启动失败,请检查日志并修复问题"
|
||||
fi
|
||||
elif [ "$START_OLLAMA" = true ] && [ $OLLAMA_RESULT -eq 0 ]; then
|
||||
log_success "Ollama服务启动完成,可通过以下地址访问:"
|
||||
echo -e "${GREEN} - Ollama API: http://localhost:$OLLAMA_PORT${NC}"
|
||||
printf "%b\n" "${GREEN} - Ollama API: http://localhost:$OLLAMA_PORT${NC}"
|
||||
elif [ "$START_DOCKER" = true ] && [ $DOCKER_RESULT -eq 0 ]; then
|
||||
log_success "Docker容器启动完成,可通过以下地址访问:"
|
||||
echo -e "${GREEN} - 前端界面: http://localhost:${FRONTEND_PORT:-80}${NC}"
|
||||
echo -e "${GREEN} - API接口: http://localhost:${APP_PORT:-8080}${NC}"
|
||||
echo -e "${GREEN} - Jaeger链路追踪: http://localhost:16686${NC}"
|
||||
printf "%b\n" "${GREEN} - 前端界面: http://localhost:${FRONTEND_PORT:-80}${NC}"
|
||||
printf "%b\n" "${GREEN} - API接口: http://localhost:${APP_PORT:-8080}${NC}"
|
||||
printf "%b\n" "${GREEN} - Jaeger链路追踪: http://localhost:16686${NC}"
|
||||
echo ""
|
||||
log_info "正在持续输出容器日志(按 Ctrl+C 退出日志,容器不会停止)..."
|
||||
"$DOCKER_COMPOSE_BIN" $DOCKER_COMPOSE_SUBCMD logs app docreader postgres --since=10s -f
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user