Parcourir la source

Merge pull request #208 from limccn/master

feat: support docker/container running
master
zhayujie GitHub il y a 1 an
Parent
révision
99a2980458
Aucune clé connue n'a été trouvée dans la base pour cette signature ID de la clé GPG: 4AEE18F83AFDEB23
9 fichiers modifiés avec 148 ajouts et 0 suppressions
  1. +28
    -0
      README.md
  2. +38
    -0
      docker/Dockerfile.alpine
  3. +40
    -0
      docker/Dockerfile.debian
  4. +3
    -0
      docker/build.alpine.sh
  5. +3
    -0
      docker/build.debian.sh
  6. +8
    -0
      docker/docker-compose.yaml
  7. +1
    -0
      docker/sample-chatgpt-on-wechat/.env
  8. +26
    -0
      docker/sample-chatgpt-on-wechat/Makefile
  9. +1
    -0
      docker/sample-chatgpt-on-wechat/Name

+ 28
- 0
README.md Voir le fichier

@@ -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
- 0
docker/Dockerfile.alpine Voir le fichier

@@ -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
- 0
docker/Dockerfile.debian Voir le fichier

@@ -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
- 0
docker/build.alpine.sh Voir le fichier

@@ -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
- 0
docker/build.debian.sh Voir le fichier

@@ -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
- 0
docker/docker-compose.yaml Voir le fichier

@@ -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
- 0
docker/sample-chatgpt-on-wechat/.env Voir le fichier

@@ -0,0 +1 @@


+ 26
- 0
docker/sample-chatgpt-on-wechat/Makefile Voir le fichier

@@ -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
- 0
docker/sample-chatgpt-on-wechat/Name Voir le fichier

@@ -0,0 +1 @@
zhayujie/chatgpt-on-wechat:1.0.0-alpine

Chargement…
Annuler
Enregistrer