1.9 KiB
1.9 KiB
Docker容器管理
此目录包含微信机器人Docker容器管理相关的代码:
文件说明
client.go
: Docker客户端初始化和管理container.go
: 容器基本操作(创建、启动、停止、删除等)robot.go
: 微信机器人容器专用操作(如获取登录二维码、检查微信登录状态等)monitor.go
: 容器状态监控,定期检查并更新机器人状态
主要功能
-
容器生命周期管理
- 创建微信机器人容器
- 启动、停止和删除容器
- 获取容器状态和日志
-
微信机器人操作
- 获取登录二维码
- 微信登录状态监控
- 获取联系人列表和群成员
- 获取聊天记录
- 微信登出
-
状态监控
- 定期检查微信机器人容器状态
- 自动更新数据库中的状态信息
使用方法
初始化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()
}