2025-04-02 14:29:44 +08:00
..
2025-03-27 16:27:41 +08:00
2025-04-02 14:29:44 +08:00
2025-03-27 16:27:41 +08:00
2025-03-27 16:27:41 +08:00
2025-03-27 16:27:41 +08:00
2025-04-02 14:29:44 +08:00

Docker容器管理

此目录包含微信机器人Docker容器管理相关的代码

文件说明

  • client.go: Docker客户端初始化和管理
  • container.go: 容器基本操作(创建、启动、停止、删除等)
  • robot.go: 微信机器人容器专用操作(如获取登录二维码、检查微信登录状态等)
  • monitor.go: 容器状态监控,定期检查并更新机器人状态

主要功能

  1. 容器生命周期管理

    • 创建微信机器人容器
    • 启动、停止和删除容器
    • 获取容器状态和日志
  2. 微信机器人操作

    • 获取登录二维码
    • 微信登录状态监控
    • 获取联系人列表和群成员
    • 获取聊天记录
    • 微信登出
  3. 状态监控

    • 定期检查微信机器人容器状态
    • 自动更新数据库中的状态信息

使用方法

初始化Docker客户端

import (
    "context"
    "github.com/Lxh/wechat-demo/internal/config"
    "github.com/Lxh/wechat-demo/internal/docker"
)

func main() {
    cfg, _ := config.Load()
    err := docker.InitClient(&cfg.Docker)
    if err != nil {
        panic(err)
    }
    
    // 创建微信机器人容器
    ctx := context.Background()
    containerID, err := docker.CreateRobotContainer(ctx, &cfg.Docker, "robot1")
    if err != nil {
        panic(err)
    }
    
    // 获取容器状态
    status, errMsg, err := docker.GetWechatBotStatus(ctx, containerID)
    // ...
}

启动容器监控:

import (
    "context"
    "time"
    "github.com/Lxh/wechat-demo/internal/model"
    "github.com/Lxh/wechat-demo/internal/docker"
)

func main() {
    db := model.GetDB()
    
    // 创建监控器,每分钟检查一次
    monitor := docker.NewContainerMonitor(db, time.Minute)
    
    // 启动监控
    monitor.Start(context.Background())
    
    // 添加容器到监控列表
    monitor.AddRobot("container-id")
    
    // 停止监控
    // monitor.Stop()
}