Files
prompt-optimizer/mkdocs/docs/zh/deployment/docker-basic.md
T
linshen 232f04db60 mkdocs: 初始化 mkdocs 文档库
- 新增多个文档文件,覆盖基本使用、高级功能、部署指南等
- 创建数据管理、模型配置、历史记录等详细指南
- 添加上下文管理、工具调用、变量系统等高级功能文档
- 提供快速开始、常见问题、故障排除等实用信息
2025-09-13 23:43:27 +08:00

7.7 KiB
Raw Blame History

Docker基础部署

本指南介绍如何使用Docker快速部署 Prompt Optimizer,包括单容器运行和基本环境配置。

🐳 Docker 单容器部署

快速开始

最简运行

只需一条命令即可启动 Prompt Optimizer:

# 最简运行(默认配置)
docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer

# 访问应用
open http://localhost:8081

完整运行命令

带环境变量的完整运行配置:

docker run -d -p 8081:80 \
  -e VITE_OPENAI_API_KEY=your_openai_key \
  -e VITE_GEMINI_API_KEY=your_gemini_key \
  -e ACCESS_USERNAME=admin \
  -e ACCESS_PASSWORD=your_secure_password \
  --restart unless-stopped \
  --name prompt-optimizer \
  linshen/prompt-optimizer

镜像说明

官方镜像

Docker Hub:linshen/prompt-optimizer:latest

  • ✅ 稳定可靠,自动构建
  • ✅ 支持多架构:amd64, arm64
  • ✅ 定期更新,跟随项目发布

国内镜像:registry.cn-guangzhou.aliyuncs.com/prompt-optimizer/prompt-optimizer:latest

  • 🚀 国内用户访问更快
  • 🔄 与Docker Hub镜像同步
  • 💡 Docker Hub访问缓慢时推荐使用

版本标签

# 使用最新版本
docker pull linshen/prompt-optimizer:latest

# 使用指定版本
docker pull linshen/prompt-optimizer:v1.2.0

# 使用开发版本(不推荐生产使用)
docker pull linshen/prompt-optimizer:dev

端口和网络配置

端口映射选项

# 标准端口映射
-p 8081:80    # 将容器80端口映射到主机8081端口

# 自定义端口
-p 3000:80    # 映射到主机3000端口
-p 80:80      # 直接映射到主机80端口(需要管理员权限)

网络模式

# 默认bridge网络
docker run -d -p 8081:80 linshen/prompt-optimizer

# 使用host网络(Linux)
docker run -d --network host linshen/prompt-optimizer

# 创建自定义网络
docker network create prompt-net
docker run -d --network prompt-net -p 8081:80 linshen/prompt-optimizer

🔧 环境变量配置

API密钥配置

主流AI服务商

# OpenAI
-e VITE_OPENAI_API_KEY=sk-your-openai-api-key

# Google Gemini
-e VITE_GEMINI_API_KEY=your-gemini-api-key

# DeepSeek
-e VITE_DEEPSEEK_API_KEY=your-deepseek-key

# 智谱AI
-e VITE_ZHIPU_API_KEY=your-zhipu-key

# SiliconFlow
-e VITE_SILICONFLOW_API_KEY=your-siliconflow-key

自定义模型配置

支持配置无限数量的自定义模型:

# Ollama本地模型
-e VITE_CUSTOM_API_KEY_ollama=dummy_key \
-e VITE_CUSTOM_API_BASE_URL_ollama=http://host.docker.internal:11434/v1 \
-e VITE_CUSTOM_API_MODEL_ollama=qwen2.5:7b \

# 其他OpenAI兼容API
-e VITE_CUSTOM_API_KEY_custom1=your-api-key \
-e VITE_CUSTOM_API_BASE_URL_custom1=https://api.example.com/v1 \
-e VITE_CUSTOM_API_MODEL_custom1=custom-model-name \

配置规则:

  • 变量名格式:VITE_CUSTOM_API_[TYPE]_[NAME]
  • [TYPE]:KEY、BASE_URL、MODEL
  • [NAME]:自定义模型名称(只能包含字母、数字、下划线)

访问控制配置

基础认证

# 启用密码保护
-e ACCESS_USERNAME=admin \
-e ACCESS_PASSWORD=your_secure_password \

配置后访问应用需要输入用户名和密码。

安全建议:

  • 使用强密码(至少8位,包含字母、数字、特殊字符)
  • 定期更换访问密码
  • 不要在命令行历史中保留密码

高级安全配置

# JWT密钥(可选,用于增强安全性)
-e JWT_SECRET=your-random-jwt-secret

# 会话超时设置(秒,默认3600秒/1小时)
-e SESSION_TIMEOUT=3600

# IP白名单(逗号分隔,支持CIDR格式)
-e ALLOWED_IPS=192.168.1.0/24,10.0.0.0/8

MCP服务器配置

Docker部署自动包含MCP(Model Context Protocol)服务器功能:

# MCP服务器配置
-e MCP_DEFAULT_MODEL_PROVIDER=openai \
-e MCP_LOG_LEVEL=info \

# MCP端点访问地址
# http://localhost:8081/mcp

MCP功能:

  • 提供标准化的AI模型访问接口
  • 支持多种模型提供商
  • 内置日志记录和监控

📦 Docker Compose 基础配置

简单配置

创建 docker-compose.yml 文件:

version: '3.8'

services:
  prompt-optimizer:
    image: linshen/prompt-optimizer:latest
    # 或使用国内镜像
    # image: registry.cn-guangzhou.aliyuncs.com/prompt-optimizer/prompt-optimizer:latest
    
    container_name: prompt-optimizer
    restart: unless-stopped
    
    ports:
      - "8081:80"
    
    environment:
      # API密钥配置
      - VITE_OPENAI_API_KEY=${OPENAI_API_KEY}
      - VITE_GEMINI_API_KEY=${GEMINI_API_KEY}
      
      # 访问控制
      - ACCESS_USERNAME=${ACCESS_USERNAME:-admin}
      - ACCESS_PASSWORD=${ACCESS_PASSWORD}
      
      # MCP配置
      - MCP_DEFAULT_MODEL_PROVIDER=${MCP_PROVIDER:-openai}
      - MCP_LOG_LEVEL=${MCP_LOG_LEVEL:-info}
    
    # 健康检查
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:80/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

环境变量文件

创建 .env 文件(重要:不要提交到版本控制):

# API Keys
OPENAI_API_KEY=sk-your-openai-api-key
GEMINI_API_KEY=your-gemini-api-key
DEEPSEEK_API_KEY=your-deepseek-key

# Access Control
ACCESS_USERNAME=admin
ACCESS_PASSWORD=your_secure_password

# MCP Configuration
MCP_PROVIDER=openai
MCP_LOG_LEVEL=info

# Custom Models (example)
VITE_CUSTOM_API_KEY_ollama=dummy_key
VITE_CUSTOM_API_BASE_URL_ollama=http://host.docker.internal:11434/v1
VITE_CUSTOM_API_MODEL_ollama=qwen2.5:7b

基本操作命令

# 启动服务
docker compose up -d

# 查看服务状态
docker compose ps

# 查看日志
docker compose logs -f

# 重启服务
docker compose restart

# 停止服务
docker compose down

# 更新镜像并重启
docker compose pull && docker compose up -d

🎯 部署验证

功能测试

1. 基础访问测试

# 测试应用是否正常启动
curl -I http://localhost:8081

# 期望返回:HTTP/1.1 200 OK

2. 健康检查测试

# 测试健康检查端点
curl http://localhost:8081/health

# 期望返回:{"status":"ok","timestamp":"..."}

3. MCP服务测试

# 测试MCP端点
curl http://localhost:8081/mcp

# 期望返回MCP服务信息

常见部署问题

端口被占用

# 检查端口占用
netstat -tulpn | grep :8081

# 解决方案:更换端口或停止占用进程
docker run -d -p 3000:80 linshen/prompt-optimizer

镜像拉取失败

# 使用国内镜像源
docker pull registry.cn-guangzhou.aliyuncs.com/prompt-optimizer/prompt-optimizer:latest

# 或配置Docker镜像加速器

容器无法启动

# 查看详细错误日志
docker logs prompt-optimizer

# 检查环境变量配置
docker exec prompt-optimizer env | grep VITE_

💡 部署建议

生产环境建议

  1. 资源配置

    • 最低要求:1GB RAM,1 CPU核心
    • 推荐配置:2GB RAM,2 CPU核心
    • 存储空间:至少500MB可用空间
  2. 安全配置

    • 始终启用访问密码保护
    • 使用HTTPS(参见高级配置)
    • 定期更新镜像版本
  3. 监控配置

    • 启用健康检查
    • 配置日志轮转
    • 监控资源使用情况

开发环境建议

  1. 快速启动

    docker run -d -p 8081:80 --name prompt-optimizer-dev linshen/prompt-optimizer
    
  2. 开发模式

    docker run -d -p 8081:80 \
      -e NODE_ENV=development \
      -e DEBUG=true \
      --name prompt-optimizer-dev \
      linshen/prompt-optimizer
    

相关链接: