From 022758de7e52dda5fb3dfbbb2b99dc446153b413 Mon Sep 17 00:00:00 2001 From: jiajiu123 <1771663559@qq.com> Date: Fri, 28 Feb 2025 17:54:47 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Docker=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 14 +++++++++++++ README.md | 11 ++++++++++ docker-compose.yml | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..615a324b2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM nonebot/nb-cli:latest +WORKDIR / +RUN apt update && apt install -y git +RUN git clone https://github.com/jiajiu123/MaiMBot +WORKDIR /MaiMBot +RUN mkdir config +RUN mv /app/env.example /app/config/.env \ +&& mv /app/src/plugins/chat/bot_config_toml /app/config/bot_config.toml +RUN ln -s /app/config/.env /app/.env \ +&& ln -s /app/config/bot_config.toml /app/src/plugins/chat/bot_config.toml +RUN pip install -r requirements.txt +VOLUME [ "/app/config" ] +EXPOSE 8080 +ENTRYPOINT [ "nb","run" ] \ No newline at end of file diff --git a/README.md b/README.md index 3001e2863..e04bfc5e4 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,17 @@ ### 安装方法(还没测试好,现在部署可能遇到未知问题!!!!) +#### Linux 使用 Docker Compose 部署 +获取项目根目录中的```docker-compose.yml```文件,运行以下命令 +```bash +NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose up -d +``` +配置文件修改完成后,运行以下命令 +```bash +NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart +``` + +#### 手动运行 1. **创建Python环境** 推荐使用conda或其他环境管理来管理你的python环境 ```bash diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..cf6fad76a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,51 @@ +services: + napcat: + container_name: napcat + environment: + - tz=Asia/Shanghai + - NAPCAT_UID=${NAPCAT_UID} + - NAPCAT_GID=${NAPCAT_GID} + ports: + - 3000:3000 + - 3001:3001 + - 6099:6099 + restart: always + volumes: + - napcatQQ:/app/.config/QQ + - napcatCONFIG:/app/napcat/config + image: mlikiowa/napcat-docker:latest + + mongodb: + container_name: mongodb + environment: + - tz=Asia/Shanghai + expose: + - "27017" + restart: always + volumes: + - mongodb:/data/db + - mongodbCONFIG:/data/configdb + image: mongo:latest + + maimbot: + container_name: maimbot + build: . + environment: + - tz=Asia/Shanghai + expose: + - "8080:8080" + restart: always + depends_on: + - mongodb + - napcat + volumes: + - maimbotCONFIG:/app/config + image: jiajiu/maimbot:latest + + +volumes: + maimbotCONFIG: + napcatQQ: + napcatCONFIG: + mongodb: + mongodbCONFIG: From 78d3747128bbf353d7e30217718bccfe3a4dd612 Mon Sep 17 00:00:00 2001 From: jiajiu123 <1771663559@qq.com> Date: Fri, 28 Feb 2025 17:56:39 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=85=BC=E5=AE=B9=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/message_send_control.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/plugins/chat/message_send_control.py b/src/plugins/chat/message_send_control.py index afbc3cd62..61169d069 100644 --- a/src/plugins/chat/message_send_control.py +++ b/src/plugins/chat/message_send_control.py @@ -2,13 +2,15 @@ from typing import Union, List, Optional, Deque, Dict from nonebot.adapters.onebot.v11 import Bot, MessageSegment import asyncio import random +import os from .message import Message, Message_Thinking, MessageSet from .cq_code import CQCode from collections import deque import time from .storage import MessageStorage from .config import global_config -from .message_visualizer import message_visualizer +if os.name == "nt": + from .message_visualizer import message_visualizer class SendTemp: @@ -161,7 +163,10 @@ class MessageSendControl: self._paused = False self._current_bot = None self.storage = MessageStorage() # 添加存储实例 - message_visualizer.start() + try: + message_visualizer.start() + except(NameError): + pass def set_bot(self, bot: Bot): """设置当前bot实例""" @@ -222,7 +227,10 @@ class MessageSendControl: # 并行处理所有群组的消息 await asyncio.gather(*tasks) - message_visualizer.update_content(self.send_temp_container) + try: + message_visualizer.update_content(self.send_temp_container) + except(NameError): + pass def set_typing_speed(self, min_speed: float, max_speed: float): """设置打字速度范围""" From a43dc99210476e6361dd8d769533f90c56c11ff3 Mon Sep 17 00:00:00 2001 From: jiajiu123 <1771663559@qq.com> Date: Fri, 28 Feb 2025 18:00:15 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BB=8E.env=E4=B8=AD=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/schedule/schedule_generator.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/schedule/schedule_generator.py b/src/plugins/schedule/schedule_generator.py index 72d7dd523..415e278c0 100644 --- a/src/plugins/schedule/schedule_generator.py +++ b/src/plugins/schedule/schedule_generator.py @@ -1,6 +1,8 @@ import datetime +import os from typing import List, Dict from .schedule_llm_module import LLMModel +from dotenv import load_dotenv from ...common.database import Database # 使用正确的导入语法 @@ -10,9 +12,9 @@ from ...common.database import Database # 使用正确的导入语法 # from src.common.database import Database # 使用正确的导入语法 Database.initialize( - "127.0.0.1", - 27017, - "MegBot" + os.getenv("MONGODB_HOST"), + int(os.getenv("MONGODB_PORT")), + os.getenv("DATABASE_NAME") ) class ScheduleGenerator: From 4dab69487e744836196eb5246909d0f0ef3fdf7e Mon Sep 17 00:00:00 2001 From: jiajiu123 <1771663559@qq.com> Date: Fri, 28 Feb 2025 18:26:26 +0800 Subject: [PATCH 4/7] fix docker --- Dockerfile | 10 +++++----- docker-compose.yml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 615a324b2..69a980d42 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,11 +4,11 @@ RUN apt update && apt install -y git RUN git clone https://github.com/jiajiu123/MaiMBot WORKDIR /MaiMBot RUN mkdir config -RUN mv /app/env.example /app/config/.env \ -&& mv /app/src/plugins/chat/bot_config_toml /app/config/bot_config.toml -RUN ln -s /app/config/.env /app/.env \ -&& ln -s /app/config/bot_config.toml /app/src/plugins/chat/bot_config.toml +RUN mv /MaiMBot/env.example /MaiMBot/config/.env \ +&& mv /MaiMBot/src/plugins/chat/bot_config_toml /MaiMBot/config/bot_config.toml +RUN ln -s /MaiMBot/config/.env /MaiMBot/.env \ +&& ln -s /MaiMBot/config/bot_config.toml /MaiMBot/src/plugins/chat/bot_config.toml RUN pip install -r requirements.txt -VOLUME [ "/app/config" ] +VOLUME [ "/MaiMBot/config" ] EXPOSE 8080 ENTRYPOINT [ "nb","run" ] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index cf6fad76a..8c3ccc38a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,7 +39,7 @@ services: - mongodb - napcat volumes: - - maimbotCONFIG:/app/config + - maimbotCONFIG:/MaiMBot/config image: jiajiu/maimbot:latest From 767b173500517f936f46f47caecef2706607de8d Mon Sep 17 00:00:00 2001 From: jiajiu123 <1771663559@qq.com> Date: Fri, 28 Feb 2025 19:13:35 +0800 Subject: [PATCH 5/7] edit Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 69a980d42..a9de9cf2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM nonebot/nb-cli:latest WORKDIR / RUN apt update && apt install -y git -RUN git clone https://github.com/jiajiu123/MaiMBot +RUN git clone https://github.com/SengokuCola/MaiMBot WORKDIR /MaiMBot RUN mkdir config RUN mv /MaiMBot/env.example /MaiMBot/config/.env \ From 7063723ca2cb46ef2fe5141d2a8685d806de16d7 Mon Sep 17 00:00:00 2001 From: jiajiu123 <60831923+jiajiu123@users.noreply.github.com> Date: Fri, 28 Feb 2025 19:14:47 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=BC=96=E8=AF=91=20Dock?= =?UTF-8?q?er=20Image=20=E5=B9=B6=E6=8E=A8=E9=80=81=E8=87=B3=20Docker=20Hu?= =?UTF-8?q?b?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-image.yml | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 000000000..aba87321f --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,31 @@ +name: Docker Build and Push + +on: + push: + branches: + - main # 推送到main分支时触发 + tags: + - 'v*' # 推送v开头的tag时触发(例如v1.0.0) + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: . # Docker构建上下文路径 + file: ./Dockerfile # Dockerfile路径 + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/maimbot:${{ github.ref_name }} + ${{ secrets.DOCKERHUB_USERNAME }}/maimbot:latest + push: true From 96fef39211a257a7719acb928a1d05270d3b7a5b Mon Sep 17 00:00:00 2001 From: jiajiu123 <60831923+jiajiu123@users.noreply.github.com> Date: Fri, 28 Feb 2025 19:20:13 +0800 Subject: [PATCH 7/7] fix docker-compose.yml --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8c3ccc38a..f613b8a28 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,6 @@ services: maimbot: container_name: maimbot - build: . environment: - tz=Asia/Shanghai expose: