mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-03-02 08:09:43 +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>
|
||||
|
||||
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