添加删除runner功能

This commit is contained in:
nimesulide
2025-05-17 22:15:29 +08:00
parent 76f87176d0
commit 6c5aef664b
2 changed files with 27 additions and 0 deletions

View File

@@ -171,6 +171,16 @@ func RunnerDeletePost(ctx *context.Context, runnerID int64,
ctx.JSONRedirect(failedRedirectTo)
return
}
runner, err := actions_model.GetRunnerByID(ctx, runnerID)
if err != nil {
log.Warn("DeleteRunnerPost.DeleteRunnerContainer failed: %v, url: %s", err, ctx.Req.URL)
}
runnerName := runner.Name
err = runner_services.DeleteRunnerByName(ctx, runnerName)
if err != nil {
log.Warn("DeleteRunnerContainer failed")
}
log.Info("DeleteRunnerPost success: %s", ctx.Req.URL)

View File

@@ -81,6 +81,23 @@ func RegistRunner(ctx context.Context, token string) error {
return nil
}
func DeleteRunnerByName(ctx context.Context, runnerName string) error {
log.Info("开始停止并删除容器: %s", runnerName)
// 创建Docker客户端
cli, err := docker_module.CreateDockerClient(&ctx)
if err != nil {
return fmt.Errorf("Docker client创建失败:%v", err)
}
log.Info("[StopAndRemoveContainer]Docker client创建成功")
defer cli.Close()
err = docker_module.DeleteContainer(cli, runnerName)
if err != nil {
return fmt.Errorf("Runner创建失败:%v", err)
}
return nil
}
func getLocalIP() ([]string, error) {
var ips []string
interfaces, err := net.Interfaces()