mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-21 06:07:13 +08:00
feat: support docker/container running
This commit is contained in:
28
README.md
28
README.md
@@ -139,6 +139,34 @@ nohup python3 app.py & tail -f nohup.out # 在后台运行程序并通
|
|||||||
|
|
||||||
> **特殊指令:** 用户向机器人发送 **#清除记忆** 即可清空该用户的上下文记忆。
|
> **特殊指令:** 用户向机器人发送 **#清除记忆** 即可清空该用户的上下文记忆。
|
||||||
|
|
||||||
|
|
||||||
|
3.如果是在docker **容器运行**,可以在`根\docker`目录下:
|
||||||
|
|
||||||
|
首先,修改Dockerfile.alpine文件里第9行,关于openapi key的配置
|
||||||
|
```bash
|
||||||
|
BUILD_OPEN_AI_API_KEY='YOUR OPEN AI KEY HERE'
|
||||||
|
```
|
||||||
|
然后,使用docker-compose启动容器运行:
|
||||||
|
```bash
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
如果您的环境里没有安装docker-compose,可以使用docker build方式构建Image,使用以下命令:
|
||||||
|
```bash
|
||||||
|
chmod +x build.alpine.sh #构建脚本添加执行权限
|
||||||
|
./build.alpine.sh #构建容器,基于alpine
|
||||||
|
```
|
||||||
|
然后,通过已构建完成的Image启动容器,使用以下命令:
|
||||||
|
```bash
|
||||||
|
docker run -it --name sample-chatgpt-on-wechat zhayujie/chatgpt-on-wechat:1.0.0-alpine
|
||||||
|
```
|
||||||
|
|
||||||
|
同时,我们在`根\docker\sample-chatgpt-on-wechat`下提供了Makefile脚本,方便使用
|
||||||
|
```bash
|
||||||
|
cd sample-chatgpt-on-wechat #进入sample-chatgpt-on-wechat目录
|
||||||
|
make run_i #使用交互式方式启动容器
|
||||||
|
```
|
||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
FAQs: <https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs>
|
FAQs: <https://github.com/zhayujie/chatgpt-on-wechat/wiki/FAQs>
|
||||||
|
|||||||
38
docker/Dockerfile.alpine
Normal file
38
docker/Dockerfile.alpine
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
FROM python:3.7.9-alpine
|
||||||
|
|
||||||
|
LABEL maintainer="foo@bar.com"
|
||||||
|
ARG TZ='Asia/Shanghai'
|
||||||
|
|
||||||
|
ARG CHATGPT_ON_WECHAT_VER=1.0.0
|
||||||
|
|
||||||
|
ENV BUILD_PREFIX=/app \
|
||||||
|
BUILD_OPEN_AI_API_KEY='YOUR OPEN AI KEY HERE'
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
curl \
|
||||||
|
wget \
|
||||||
|
openssh
|
||||||
|
|
||||||
|
RUN wget -t 3 -T 30 -nv -O chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER}.tar.gz \
|
||||||
|
https://github.com/zhayujie/chatgpt-on-wechat/archive/refs/tags/${CHATGPT_ON_WECHAT_VER}.tar.gz \
|
||||||
|
&& tar -xzf chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER}.tar.gz \
|
||||||
|
&& mv chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER} ${BUILD_PREFIX} \
|
||||||
|
&& rm chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER}.tar.gz
|
||||||
|
|
||||||
|
WORKDIR ${BUILD_PREFIX}
|
||||||
|
|
||||||
|
RUN cd ${BUILD_PREFIX} \
|
||||||
|
&& cp config-template.json ${BUILD_PREFIX}/config.json \
|
||||||
|
&& sed -i "2s/YOUR API KEY/${BUILD_OPEN_AI_API_KEY}/" ${BUILD_PREFIX}/config.json \
|
||||||
|
&& cat ${BUILD_PREFIX}/config.json
|
||||||
|
|
||||||
|
RUN /usr/local/bin/python -m pip install --upgrade pip \
|
||||||
|
&& pip install itchat-uos==1.5.0.dev0 \
|
||||||
|
&& pip install --upgrade openai
|
||||||
|
|
||||||
|
RUN adduser -D -h /home/noroot -u 1000 -s /bin/bash noroot \
|
||||||
|
&& chown noroot:noroot ${BUILD_PREFIX}
|
||||||
|
|
||||||
|
USER noroot
|
||||||
|
|
||||||
|
CMD ["python","app.py"]
|
||||||
40
docker/Dockerfile.debian
Normal file
40
docker/Dockerfile.debian
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
FROM python:3.7.9
|
||||||
|
|
||||||
|
LABEL maintainer="foo@bar.com"
|
||||||
|
ARG TZ='Asia/Shanghai'
|
||||||
|
|
||||||
|
ARG CHATGPT_ON_WECHAT_VER=1.0.0
|
||||||
|
|
||||||
|
ENV BUILD_PREFIX=/app \
|
||||||
|
BUILD_OPEN_AI_API_KEY='YOUR OPEN AI KEY HERE'
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
wget \
|
||||||
|
curl && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN wget -t 3 -T 30 -nv -O chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER}.tar.gz \
|
||||||
|
https://github.com/zhayujie/chatgpt-on-wechat/archive/refs/tags/${CHATGPT_ON_WECHAT_VER}.tar.gz \
|
||||||
|
&& tar -xzf chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER}.tar.gz \
|
||||||
|
&& mv chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER} ${BUILD_PREFIX} \
|
||||||
|
&& rm chatgpt-on-wechat-${CHATGPT_ON_WECHAT_VER}.tar.gz
|
||||||
|
|
||||||
|
WORKDIR ${BUILD_PREFIX}
|
||||||
|
|
||||||
|
RUN cd ${BUILD_PREFIX} \
|
||||||
|
&& cp config-template.json ${BUILD_PREFIX}/config.json \
|
||||||
|
&& sed -i "2s/YOUR API KEY/${BUILD_OPEN_AI_API_KEY}/" ${BUILD_PREFIX}/config.json \
|
||||||
|
&& cat ${BUILD_PREFIX}/config.json
|
||||||
|
|
||||||
|
RUN /usr/local/bin/python -m pip install --upgrade pip \
|
||||||
|
&& pip install itchat-uos==1.5.0.dev0 \
|
||||||
|
&& pip install --upgrade openai
|
||||||
|
|
||||||
|
RUN groupadd -r noroot \
|
||||||
|
&& useradd -r -g noroot noroot \
|
||||||
|
&& chown -R noroot:noroot ${BUILD_PREFIX}
|
||||||
|
|
||||||
|
USER noroot
|
||||||
|
|
||||||
|
CMD ["python","app.py"]
|
||||||
3
docker/build.alpine.sh
Normal file
3
docker/build.alpine.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
docker build -f Dockerfile.alpine \
|
||||||
|
--build-arg CHATGPT_ON_WECHAT_VER=1.0.0\
|
||||||
|
-t zhayujie/chatgpt-on-wechat:1.0.0-alpine .
|
||||||
3
docker/build.debian.sh
Normal file
3
docker/build.debian.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
docker build -f Dockerfile.debian \
|
||||||
|
--build-arg CHATGPT_ON_WECHAT_VER=1.0.0\
|
||||||
|
-t zhayujie/chatgpt-on-wechat:1.0.0-debian .
|
||||||
8
docker/docker-compose.yaml
Normal file
8
docker/docker-compose.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
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
|
||||||
1
docker/sample-chatgpt-on-wechat/.env
Normal file
1
docker/sample-chatgpt-on-wechat/.env
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
26
docker/sample-chatgpt-on-wechat/Makefile
Normal file
26
docker/sample-chatgpt-on-wechat/Makefile
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
IMG:=`cat Name`
|
||||||
|
MOUNT:=-v `pwd`/config.json:/app/config.json
|
||||||
|
PORT_MAP:=
|
||||||
|
DOTENV:=.env
|
||||||
|
CONTAINER_NAME:=sample-chatgpt-on-wechat
|
||||||
|
|
||||||
|
echo:
|
||||||
|
echo $(IMG)
|
||||||
|
|
||||||
|
run_d:
|
||||||
|
docker rm $(CONTAINER_NAME) || echo
|
||||||
|
docker run -dt --name $(CONTAINER_NAME) $(PORT_MAP) \
|
||||||
|
--env-file=$(DOTENV) \
|
||||||
|
$(MOUNT) $(IMG)
|
||||||
|
|
||||||
|
run_i:
|
||||||
|
docker rm $(CONTAINER_NAME) || echo
|
||||||
|
docker run -it --name $(CONTAINER_NAME) $(PORT_MAP) \
|
||||||
|
--env-file=$(DOTENV) \
|
||||||
|
$(MOUNT) $(IMG)
|
||||||
|
|
||||||
|
stop:
|
||||||
|
docker stop $(CONTAINER_NAME)
|
||||||
|
|
||||||
|
rm: stop
|
||||||
|
docker rm $(CONTAINER_NAME)
|
||||||
1
docker/sample-chatgpt-on-wechat/Name
Normal file
1
docker/sample-chatgpt-on-wechat/Name
Normal file
@@ -0,0 +1 @@
|
|||||||
|
zhayujie/chatgpt-on-wechat:1.0.0-alpine
|
||||||
Reference in New Issue
Block a user