物联网程序
This commit is contained in:
@@ -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 "程序已重启"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user