From a04d088ba840218f378ae1781d9120174555558e Mon Sep 17 00:00:00 2001 From: Lycreal Date: Thu, 12 Dec 2019 22:35:59 +0800 Subject: [PATCH] =?UTF-8?q?Update=20"=E4=BD=BF=E7=94=A8=20Docker=20Compose?= =?UTF-8?q?=20=E4=B8=8E=20=E9=85=B7Q=20=E5=90=8C=E6=97=B6=E9=83=A8?= =?UTF-8?q?=E7=BD=B2"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/advanced/deployment.md | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/docs/advanced/deployment.md b/docs/advanced/deployment.md index 93cbcd54..98692f1e 100644 --- a/docs/advanced/deployment.md +++ b/docs/advanced/deployment.md @@ -33,3 +33,46 @@ hypercorn run:app 另外,NoneBot 配置文件的 `DEBUG` 项默认为 `True`,在生产环境部署时请注意修改为 `False` 以提高性能。 ## 使用 Docker Compose 与 酷Q 同时部署 + +Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。通过建立一个名为`docker-compose.yml`的文件,可以将部署过程中需要的参数记录在其中,并由单个命令完成应用的创建和启动。 + +`docker-compose.yml`文件的样例如下: + +```yaml +version: "3" +services: + + cqhttp: + image: richardchien/cqhttp:latest + volumes: + - "./coolq:/home/user/coolq" # 用于保存COOLQ文件的目录 + environment: + - COOLQ_ACCOUNT=123456 # 指定要登陆的QQ号,用于自动登录 + - FORCE_ENV=true + - CQHTTP_USE_HTTP=false + - CQHTTP_USE_WS=false + - CQHTTP_USE_WS_REVERSE=true + - CQHTTP_WS_REVERSE_API_URL=ws://nonebot:8080/ws/api/ + - CQHTTP_WS_REVERSE_EVENT_URL=ws://nonebot:8080/ws/event/ + depends_on: + - nonebot + + nonebot: + build: ./nonebot # 构建nonebot执行环境,Dockerfile见下面的例子 + expose: + - "8080" + environment: + - TZ=Asia/Shanghai + volumes: + - "./qbot:/root/qbot" # 项目文件所在目录 + command: python3 /root/qbot/bot.py +``` +部分说明见注释。nonebot运行环境由文件`./nonebot/Dockerfile`构建。如果项目中使用了第三方库,可以在这一步骤进行安装。`Dockerfile`内容举例: + +```Dockerfile +FROM alpine +RUN apk add --no-cache tzdata python3 py3-multidict py3-yarl && \ + pip3 install --no-cache-dir "nonebot[scheduler]" +``` + +上述文件编辑完成后,输入命令`docker-compose up -d`在后台启动。其他Docker Compose用法见[官方文档](https://docs.docker.com/compose/reference/overview/)。