本次提交主要集成了 MCP 服务器,为系统增加了用户提示词优化工具,并通过优化部署流程,提升了整体易用性。
具体变更内容包括:
* **功能增强:**
* 集成 MCP 服务器,提供用户和系统提示词优化工具,支持 stdio 和 HTTP 两种传输方式,并集成了 Claude Desktop。
* 实现基于会话的 HTTP 传输,允许多客户端连接,并为每个会话创建独立的 MCP 服务器实例,确保会话间的隔离性。
* **部署优化:**
* 将 MCP 服务器端口变更为与 Web 界面共享 80 端口,通过路径区分,简化了 Docker 部署配置,降低了部署复杂度。
* 优化 Docker 部署流程,使用 Supervisor 进行进程管理,并改进模板参数(使用枚举类型 + 默认值),同时提供了包含 MCP 服务器使用说明的 Docker 部署文档。
* **代码优化与重构:**
* 优化模型选择逻辑,提高模型选择的准确性。
* 优化日志记录功能,支持更灵活的日志级别设置,并添加了详细的错误提示和调试信息,方便问题排查。
* 重构代码,分离构建和启动入口,优化环境变量加载和模型初始化逻辑,提高了代码的可维护性和可扩展性,并解决了构建副作用问题。
* **文档更新:**
* 更新工具描述和使用说明,提供了用户和系统提示词工具的具体示例,并补充了迭代提示词工具的改进需求描述和使用场景。
* 更新 Docker 部署方案,包含了 `docker-compose.yml`、`Dockerfile` 和 `env.local.example` 配置示例,并更新了 README 文档以明确连接方式。
* 更新 `nginx.conf`,使用环境变量 `NGINX_PORT`,修改 `start-services.sh`,增加 nginx 配置处理,更新 `supervisord.conf`,调整 MCP 服务器启动方式,优化 `Dockerfile`,安装额外依赖并调整工作目录,调整环境变量加载机制,使用 `preload-env.cjs`。
* **其他:**
* 提供快速开始指南、环境变量配置和问题排除等文档,更新了相关文档链接和获取帮助指引,并完成了基础测试用例和开发/设计文档。
本次更新旨在提升用户在提示词优化方面的能力,并简化部署流程,提高系统的整体可用性和可维护性。
61 lines
1.9 KiB
Docker
61 lines
1.9 KiB
Docker
FROM node:20-slim AS base
|
|
ENV PNPM_HOME="/pnpm"
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
|
RUN npm install -g corepack@latest && corepack enable
|
|
|
|
FROM base AS build
|
|
COPY . /app
|
|
WORKDIR /app
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
|
RUN pnpm run build
|
|
RUN pnpm mcp:build
|
|
|
|
FROM nginx:stable-alpine
|
|
# 安装Node.js、htpasswd工具、dos2unix和supervisor
|
|
RUN apk add --no-cache apache2-utils dos2unix supervisor nodejs npm gettext curl
|
|
|
|
# 安装pnpm
|
|
RUN npm install -g pnpm
|
|
|
|
# 复制Nginx配置
|
|
COPY docker/nginx.conf /etc/nginx/conf.d/default.conf
|
|
|
|
# 复制Web应用
|
|
COPY --from=build /app/packages/web/dist /usr/share/nginx/html
|
|
|
|
# 复制MCP服务器
|
|
COPY --from=build /app/packages/mcp-server/dist /app/mcp-server/dist
|
|
COPY --from=build /app/packages/mcp-server/package.json /app/mcp-server/
|
|
COPY --from=build /app/packages/mcp-server/preload-env.js /app/mcp-server/
|
|
COPY --from=build /app/packages/mcp-server/preload-env.cjs /app/mcp-server/
|
|
# 复制构建后的包到正确位置
|
|
COPY --from=build /app/packages /app/packages
|
|
# 复制必要的node_modules
|
|
COPY --from=build /app/node_modules /app/node_modules
|
|
|
|
# 设置默认环境变量(向前兼容)
|
|
ENV NGINX_PORT=80
|
|
|
|
# 设置MCP服务器工作目录
|
|
WORKDIR /app/mcp-server
|
|
|
|
# 复制并设置启动脚本
|
|
COPY docker/generate-config.sh /docker-entrypoint.d/40-generate-config.sh
|
|
COPY docker/generate-auth.sh /docker-entrypoint.d/30-generate-auth.sh
|
|
COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
COPY docker/start-services.sh /start-services.sh
|
|
|
|
# 确保脚本有执行权限
|
|
RUN chmod +x /docker-entrypoint.d/40-generate-config.sh
|
|
RUN chmod +x /docker-entrypoint.d/30-generate-auth.sh
|
|
RUN chmod +x /start-services.sh
|
|
|
|
# 转换可能的Windows行尾符为Unix格式
|
|
RUN dos2unix /docker-entrypoint.d/40-generate-config.sh
|
|
RUN dos2unix /docker-entrypoint.d/30-generate-auth.sh
|
|
RUN dos2unix /start-services.sh
|
|
|
|
EXPOSE 80
|
|
|
|
# 使用自定义启动脚本
|
|
CMD ["sh", "/start-services.sh"] |