forked from zhayujie/chatgpt-on-wechat
-
Notifications
You must be signed in to change notification settings - Fork 48
Docker部署
limccn edited this page Mar 7, 2023
·
3 revisions
启动容器运行,执行以下命令:
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
- 直接在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
- 或者,使用
--env-file=
配合env文件覆盖环境变量,实现修改运行参数,参考命令:
docker run -it --name sample-chatgpt-on-wechat --env-file=.env zhayujie/chatgpt-on-wechat
- 或者,使用
-v
替换容器中的config.json
,实现修改运行参数,参考命令:
docker run -it --name sample-chatgpt-on-wechat -v YOUR_PATH_TO_CONFIG:/app/config.json zhayujie/chatgpt-on-wechat
- 可用环境变量,可以参考示例
.env
文件
OPEN_AI_API_KEY=YOUR API KEY
OPEN_AI_PROXY=
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训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。
EXPIRES_IN_SECONDS=3600
- 构建Image,执行以下命令:
chmod +x build.alpine.sh # 构建脚本添加执行权限
./build.alpine.sh # 构建容器,基于alpine
- 构建Image完成后启动容器,执行以下命令:
docker run -it --name sample-chatgpt-on-wechat zhayujie/chatgpt-on-wechat
- DockerFile源文件
Dockerfile.debian
, Dockerfile.alpine
- 构建Image并启动, 执行以下命令:
docker-compose up --build
- 示例
docker-compose.yaml
文件内容
version: '2.0' services: chatgpt-on-wechat: build: context: ./ dockerfile: Dockerfile.alpine image: zhayujie/chatgpt-on-wechat container_name: sample-chatgpt-on-wechat environment: OPEN_AI_API_KEY: 'YOUR API KEY' OPEN_AI_PROXY: '' 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训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。' EXPIRES_IN_SECONDS: 3600
- 使用构建参数
--build-arg
设置CHATGPT_ON_WECHAT_VER
构建参数,可以指定chatgpt-on-wechat的Tag版本。
# 指定使用1.0.2发布的tag
CHATGPT_ON_WECHAT_TAG=1.0.4
# 或者从github获取最新的tag
CHATGPT_ON_WECHAT_TAG=`curl -sL "https://api.github.com/repos/zhayujie/chatgpt-on-wechat/releases/latest" | \
grep '"tag_name":' | \
sed -E 's/.*"([^"]+)".*/\1/'`
# 构建debian版本
docker build -f Dockerfile.debian \
--build-arg CHATGPT_ON_WECHAT_VER=$CHATGPT_ON_WECHAT_TAG \
-t zhayujie/chatgpt-on-wechat:$CHATGPT_ON_WECHAT_TAG-debian .
# 更改tag
docker tag zhayujie/chatgpt-on-wechat:$CHATGPT_ON_WECHAT_TAG-debian \
zhayujie/chatgpt-on-wechat
- 修改 Dockerfile.alpine 或Dockerfile.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 #使用交互式方式启动容器