Skip to content

Docker部署

limccn edited this page Feb 16, 2023 · 3 revisions

使用Docker部署

快速开始

启动容器运行,执行以下命令:

docker-compose up                  

# 本地构建容器Image
chmod +x build.alpine.sh           # 构建脚本添加执行权限
./build.alpine.sh                  # 构建容器,基于alpine
# 启动容器
docker run -it --name sample-chatgpt-on-wechat --env OPEN_AI_API_KEY=sk-YourOpenApiKey zhayujie/chatgpt-on-wechat:1.0.0-alpine        

使用环境变量和运行时配置修改

  1. 直接在Shell中使用--env参数覆盖环境变量,实现修改运行参数,参考命令:
docker run -it --name sample-chatgpt-on-wechat --env OPEN_AI_API_KEY=sk-YourOpenApiKey --env CONVERSATION_MAX_TOKENS=1000 zhayujie/chatgpt-on-wechat:1.0.0-alpine        
  1. 或者,使用--env-file=配合env文件覆盖环境变量,实现修改运行参数,参考命令:
docker run -it --name sample-chatgpt-on-wechat --env-file=.env zhayujie/chatgpt-on-wechat:1.0.0-alpine        
  1. 或者,使用-v替换容器中的config.json,实现修改运行参数,参考命令:
docker run -it --name sample-chatgpt-on-wechat -v YOUR_PATH_TO_CONFIG:/app/config.json zhayujie/chatgpt-on-wechat:1.0.0-alpine        
  1. 可用环境变量,可以参考示例.env文件
OPEN_AI_API_KEY=YOUR API KEY
SINGLE_CHAT_PREFIX=["BOT", "@BOT"]
SINGLE_CHAT_REPLY_PREFIX="[BOT] "
GROUP_CHAT_PREFIX=["@BOT"]
GROUP_NAME_WHITE_LIST=["CHATGPT测试群", "CHATGPT测试群2"]
IMAGE_CREATE_PREFIX=["", "", ""]
CONVERSATION_MAX_TOKENS=1000
CHARACTER_DESC=你是CHATGPT, 一个由OPENAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。

开始构建Docker Image

使用docker build构建

  1. 构建Image,执行以下命令:
chmod +x build.alpine.sh           # 构建脚本添加执行权限
./build.alpine.sh                  # 构建容器,基于alpine
  1. 构建Image完成后启动容器,执行以下命令:
docker run -it --name sample-chatgpt-on-wechat zhayujie/chatgpt-on-wechat:1.0.0-alpine        
  1. DockerFile源文件

Dockerfile.debian, Dockerfile.alpine

使用docker-compose构建

  1. 构建Image并启动, 执行以下命令:
docker-compose up --build                
  1. 示例docker-compose.yaml文件内容
version: '2.0'
services:
  chatgpt-on-wechat:
    build:
      context: ./
      dockerfile: Dockerfile.alpine
    image: zhayujie/chatgpt-on-wechat:1.0.0-alpine
    container_name: sample-chatgpt-on-wechat
    environment:
      OPEN_AI_API_KEY: 'YOUR API KEY'
      SINGLE_CHAT_PREFIX: '["BOT", "@BOT"]'
      SINGLE_CHAT_REPLY_PREFIX: '"[BOT] "'
      GROUP_CHAT_PREFIX: '["@BOT"]'
      GROUP_NAME_WHITE_LIST: '["CHATGPT测试群", "CHATGPT测试群2"]'
      IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
      CONVERSATION_MAX_TOKENS: 1000
      CHARACTER_DESC: '你是CHATGPT, 一个由OPENAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'

其他构建用法

  1. 使用构建参数--build-arg设置CHATGPT_ON_WECHAT_VER构建参数,可以指定chatgpt-on-wechat的Tag版本。
docker build -f Dockerfile.alpine \
             --build-arg CHATGPT_ON_WECHAT_VER=1.0.0 \
             -t zhayujie/chatgpt-on-wechat:1.0.0-alpine .
  1. 修改 Dockerfile.alpineDockerfile.debian 文件里第9行中 API_KEY 的配置,可以在构建时直接将API_KEY构建进Image。
BUILD_OPEN_AI_API_KEY='YOUR OPEN AI KEY HERE'               

其他便利工具

我们在 docker/sample-chatgpt-on-wechat 下提供了 Makefile 脚本,方便进入容器:

cd sample-chatgpt-on-wechat          # 进入sample-chatgpt-on-wechat目录
make run_i                           # 使用交互式方式启动容器

命令格式为:

make [echo|stop|rm|run_d|run_i]
# make echo       #回显容器名称
# make stop       #停止容器 
# make rm         #删除容器 
# make run_d      #使用守护式方式启动容器
# make run_i      #使用交互式方式启动容器
Clone this wiki locally