From e0240d652b6deb19ebb4e92b0a97c5b302e5c20f Mon Sep 17 00:00:00 2001 From: infinitycat Date: Wed, 2 Apr 2025 10:50:27 +0800 Subject: [PATCH 1/6] =?UTF-8?q?refactor(infrastructure):=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20Docker=20Compose=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 adapters、MaiMBot、mongodb 和 napcat 的数据卷挂载路径 - 统一使用 ./docker-config 目录结构进行配置文件和数据持久化 -移除冗余的配置项,简化配置结构 --- docker-compose.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7b4fcd2d3..8e1edf76e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,8 @@ services: ports: - "18002:18002" volumes: - - ./adapters/plugins:/adapters/src/plugins # 持久化adapters插件 - - ./adapters/.env:/adapters/.env # 持久化adapters配置文件 + - ./docker-config/adapters/plugins:/adapters/src/plugins # 持久化adapters + - ./docker-config/adapters/.env:/adapters/.env # 持久化adapters配置文件 - ./data/qq:/app/.config/QQ # 持久化QQ本体并同步qq表情和图片到adapters restart: always depends_on: @@ -25,9 +25,8 @@ services: ports: - "8000:8000" volumes: - - ./mmc-data:/MaiMBot/data - - ./mmc-config/.env:/MaiMBot/.env # 持久化bot配置文件 - - ./mmc-config/bot_config.toml:/MaiMBot/config/bot_config.toml # 持久化bot配置文件 + - ./docker-config/mmc/.env:/MaiMBot/.env # 持久化env配置文件 + - ./docker-config/mmc:/MaiMBot/config # 持久化bot配置文件 - ./data/MaiMBot:/MaiMBot/data # NapCat 和 NoneBot 共享此卷,否则发送图片会有问题 restart: always depends_on: @@ -45,7 +44,7 @@ services: restart: always volumes: - mongodb:/data/db # 持久化mongodb数据 - - mongodbCONFIG:/data/configdb # 持久化mongodb配置文件 + - ./docker-config/mongodb:/data/configdb # 持久化mongodb配置文件 image: mongo:latest networks: - maim_bot @@ -58,7 +57,7 @@ services: - "6099:6099" - "8095:8095" volumes: - - ./napcat-config:/app/napcat/config # 持久化napcat配置文件 + - ./docker-config/napcat:/app/napcat/config # 持久化napcat配置文件 - ./data/qq:/app/.config/QQ # 持久化QQ本体并同步qq表情和图片到adapters - ./data/MaiMBot:/MaiMBot/data # NapCat 和 NoneBot 共享此卷,否则发送图片会有问题 container_name: maim-bot-napcat @@ -70,5 +69,4 @@ networks: maim_bot: driver: bridge volumes: - mongodb: - mongodbCONFIG: \ No newline at end of file + mongodb: \ No newline at end of file From 4197ce5906ad57d179e18fdbc4d60b376f99d035 Mon Sep 17 00:00:00 2001 From: infinitycat Date: Wed, 2 Apr 2025 12:51:26 +0800 Subject: [PATCH 2/6] =?UTF-8?q?vol(mongodb):=20=E4=BF=AE=E6=94=B9=20MongoD?= =?UTF-8?q?B=20=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E6=8C=81=E4=B9=85?= =?UTF-8?q?=E5=8C=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -将本地路径 ./docker-config/mongodb 更改为使用自定义卷 mongodbCONFIG - 在 volumes 部分添加 mongodbCONFIG 卷的定义 --- docker-compose.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8e1edf76e..cf35ffec3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,7 +44,7 @@ services: restart: always volumes: - mongodb:/data/db # 持久化mongodb数据 - - ./docker-config/mongodb:/data/configdb # 持久化mongodb配置文件 + - mongodbCONFIG:/data/configdb # 持久化mongodb配置文件 image: mongo:latest networks: - maim_bot @@ -69,4 +69,5 @@ networks: maim_bot: driver: bridge volumes: - mongodb: \ No newline at end of file + mongodb: + mongodbCONFIG: \ No newline at end of file From 1934aa30f28ca38390e4032f8ac3d8ddb9fe4fff Mon Sep 17 00:00:00 2001 From: infinitycat Date: Wed, 2 Apr 2025 15:24:12 +0800 Subject: [PATCH 3/6] =?UTF-8?q?build:=E4=B8=BA=20Docker=20=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=B7=BB=E5=8A=A0=20entrypoint=20=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 entrypoint.sh脚本,用于在容器启动时执行初始化操作 - 修改 Dockerfile,使用 entrypoint.sh 作为入口点 - 脚本功能包括: - 创建配置目录 - 复制 bot配置文件 - 复制环境配置文件 --- Dockerfile | 6 +++++- entrypoint.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 6c6041ff3..3addda1c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,4 +17,8 @@ RUN pip install --upgrade -r requirements.txt COPY . . EXPOSE 8000 -ENTRYPOINT [ "python","bot.py" ] \ No newline at end of file + +RUN chmod +x /MaiMBot/entrypoint.sh +ENTRYPOINT ["/MaiMBot/entrypoint.sh"] + +CMD [ "python","bot.py" ] \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 000000000..f8b5d7782 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,55 @@ +#!/bin/sh +set -e # 遇到任何错误立即退出 + +# 定义常量 +TEMPLATE_DIR="./template" +CONFIG_DIR="./config" +TARGET_ENV_FILE="./.env" + +# 步骤 1: 创建 config 目录 +if [ ! -d "$CONFIG_DIR" ]; then + echo "🛠️ 创建配置目录: $CONFIG_DIR" + mkdir -p "$CONFIG_DIR" + chmod 755 "$CONFIG_DIR" # 设置目录权限(按需修改) +else + echo "ℹ️ 配置目录已存在,跳过创建: $CONFIG_DIR" +fi + +# 步骤 2: 复制 bot 配置文件 +BOT_TEMPLATE="$TEMPLATE_DIR/bot_config_template.toml" +BOT_CONFIG="$CONFIG_DIR/bot_config.toml" + +if [ -f "$BOT_TEMPLATE" ]; then + if [ ! -f "$BOT_CONFIG" ]; then + echo "📄 生成 Bot 配置文件: $BOT_CONFIG" + cp "$BOT_TEMPLATE" "$BOT_CONFIG" + chmod 644 "$BOT_CONFIG" # 设置文件权限(按需修改) + else + echo "ℹ️ Bot 配置文件已存在,跳过生成: $BOT_CONFIG" + fi +else + echo "❌ 错误:模板文件不存在: $BOT_TEMPLATE" >&2 + exit 1 +fi + +# 步骤 3: 复制环境文件 +ENV_TEMPLATE="$TEMPLATE_DIR/template.env" +ENV_TARGET="$TARGET_ENV_FILE" + +if [ -f "$ENV_TEMPLATE" ]; then + if [ ! -f "$ENV_TARGET" ]; then + echo "🔧 生成环境配置文件: $ENV_TARGET" + cp "$ENV_TEMPLATE" "$ENV_TARGET" + chmod 600 "$ENV_TARGET" # 敏感文件建议更严格权限 + else + echo "ℹ️ 环境文件已存在,跳过生成: $ENV_TARGET" + fi +else + echo "❌ 错误:模板文件不存在: $ENV_TEMPLATE" >&2 + exit 1 +fi + +echo "✅ 所有初始化完成!" + +# 执行 Docker CMD 命令 +exec "$@" \ No newline at end of file From 442b2065603bdc3e622cc41cc49a5ec038945863 Mon Sep 17 00:00:00 2001 From: infinitycat Date: Wed, 2 Apr 2025 16:53:43 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=BC=83=E7=94=A8entrypoint.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 5 +---- entrypoint.sh | 55 --------------------------------------------------- 2 files changed, 1 insertion(+), 59 deletions(-) delete mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 3addda1c3..fe96ac033 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,4 @@ COPY . . EXPOSE 8000 -RUN chmod +x /MaiMBot/entrypoint.sh -ENTRYPOINT ["/MaiMBot/entrypoint.sh"] - -CMD [ "python","bot.py" ] \ No newline at end of file +ENTRYPOINT [ "python","bot.py" ] \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh deleted file mode 100644 index f8b5d7782..000000000 --- a/entrypoint.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -set -e # 遇到任何错误立即退出 - -# 定义常量 -TEMPLATE_DIR="./template" -CONFIG_DIR="./config" -TARGET_ENV_FILE="./.env" - -# 步骤 1: 创建 config 目录 -if [ ! -d "$CONFIG_DIR" ]; then - echo "🛠️ 创建配置目录: $CONFIG_DIR" - mkdir -p "$CONFIG_DIR" - chmod 755 "$CONFIG_DIR" # 设置目录权限(按需修改) -else - echo "ℹ️ 配置目录已存在,跳过创建: $CONFIG_DIR" -fi - -# 步骤 2: 复制 bot 配置文件 -BOT_TEMPLATE="$TEMPLATE_DIR/bot_config_template.toml" -BOT_CONFIG="$CONFIG_DIR/bot_config.toml" - -if [ -f "$BOT_TEMPLATE" ]; then - if [ ! -f "$BOT_CONFIG" ]; then - echo "📄 生成 Bot 配置文件: $BOT_CONFIG" - cp "$BOT_TEMPLATE" "$BOT_CONFIG" - chmod 644 "$BOT_CONFIG" # 设置文件权限(按需修改) - else - echo "ℹ️ Bot 配置文件已存在,跳过生成: $BOT_CONFIG" - fi -else - echo "❌ 错误:模板文件不存在: $BOT_TEMPLATE" >&2 - exit 1 -fi - -# 步骤 3: 复制环境文件 -ENV_TEMPLATE="$TEMPLATE_DIR/template.env" -ENV_TARGET="$TARGET_ENV_FILE" - -if [ -f "$ENV_TEMPLATE" ]; then - if [ ! -f "$ENV_TARGET" ]; then - echo "🔧 生成环境配置文件: $ENV_TARGET" - cp "$ENV_TEMPLATE" "$ENV_TARGET" - chmod 600 "$ENV_TARGET" # 敏感文件建议更严格权限 - else - echo "ℹ️ 环境文件已存在,跳过生成: $ENV_TARGET" - fi -else - echo "❌ 错误:模板文件不存在: $ENV_TEMPLATE" >&2 - exit 1 -fi - -echo "✅ 所有初始化完成!" - -# 执行 Docker CMD 命令 -exec "$@" \ No newline at end of file From dd2bf1b7e56f9603362860ffd7e2eab719fe70fe Mon Sep 17 00:00:00 2001 From: infinitycat Date: Wed, 2 Apr 2025 20:48:26 +0800 Subject: [PATCH 5/6] =?UTF-8?q?build:=20=E6=9B=B4=E6=96=B0=20Docker=20?= =?UTF-8?q?=E9=95=9C=E5=83=8F=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 maimbot-adapter 镜像源从 sengokucola 更改为 maple127667 - 保持其他配置不变 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index cf35ffec3..3f86d3802 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ services: adapters: container_name: maim-bot-adapters - image: sengokucola/maimbot-adapter:latest + image: maple127667/maimbot-adapter:latest environment: - TZ=Asia/Shanghai ports: From 47d788f318892833f828fadd88b4a1f05c04274f Mon Sep 17 00:00:00 2001 From: infinitycat Date: Wed, 2 Apr 2025 21:16:25 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=BC=83=E7=94=A8entrypoint.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 3f86d3802..367d28cdd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,7 @@ services: adapters: container_name: maim-bot-adapters image: maple127667/maimbot-adapter:latest + # image: infinitycat/maimbot-adapter:latest environment: - TZ=Asia/Shanghai ports: @@ -18,6 +19,7 @@ services: core: container_name: maim-bot-core image: sengokucola/maimbot:refactor + # image: infinitycat/maimbot:refactor environment: - TZ=Asia/Shanghai # - EULA_AGREE=35362b6ea30f12891d46ef545122e84a # 同意EULA