物联网程序

This commit is contained in:
BBIT-Kai
2026-03-26 17:53:55 +08:00
parent 0c2859b0db
commit 8592af3111
11 changed files with 51 additions and 21 deletions
+17 -6
View File
@@ -117,19 +117,30 @@ func (b *BusinessService) handleShutdown() string {
return "程序已退出"
}
// 重启程序
// 重启程序
func (b *BusinessService) handleRestart() string {
log.Println("正在拉取镜像:", config.DOCKER_IMAGE)
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
defer cancel()
if err := b.dockerManager.PullImage(ctx, config.DOCKER_IMAGE); err != nil {
log.Fatalf("镜像拉取失败:%v", err)
// 先停止并移除旧容器
if err := b.dockerManager.StopAndRemoveContainer(ctx); err != nil {
log.Println("警告:移除容器失败,可能容器不存在:", err)
}
err := b.dockerManager.RunContainer(ctx)
if err != nil {
log.Fatal(err)
// 拉取最新镜像
log.Println("正在拉取镜像:", config.DOCKER_IMAGE)
if err := b.dockerManager.PullImage(ctx, config.DOCKER_IMAGE); err != nil {
log.Println("镜像拉取失败:", err)
return "程序重启失败,拉取镜像失败"
}
// 启动新容器
if err := b.dockerManager.RunContainer(ctx); err != nil {
log.Println("容器启动失败:", err)
return "程序重启失败,容器启动失败"
}
return "程序已重启"
}