Browse Source

fix: 应用停止使用 docker-compose stop

pull/61/head
zhengkunwang223 2 years ago committed by zhengkunwang223
parent
commit
bd1c8b2fd8
  1. 20
      backend/app/service/app_install.go
  2. 2
      backend/utils/compose/compose.go
  3. 4
      frontend/src/views/app-store/installed/index.vue

20
backend/app/service/app_install.go

@ -376,13 +376,17 @@ func syncById(installId uint) error {
errorContainers []string
notFoundContainers []string
runningContainers []string
exitedContainers []string
)
for _, n := range containers {
if n.State != "running" {
errorContainers = append(errorContainers, n.Names[0])
} else {
switch n.State {
case "exited":
exitedContainers = append(exitedContainers, n.Names[0])
case "running":
runningContainers = append(runningContainers, n.Names[0])
default:
errorContainers = append(errorContainers, n.Names[0])
}
}
for _, old := range containerNames {
@ -401,6 +405,7 @@ func syncById(installId uint) error {
containerCount := len(containers)
errCount := len(errorContainers)
notFoundCount := len(notFoundContainers)
existedCount := len(exitedContainers)
normalCount := len(containerNames)
runningCount := len(runningContainers)
@ -409,16 +414,17 @@ func syncById(installId uint) error {
appInstall.Message = "container is not found"
return appInstallRepo.Save(&appInstall)
}
if errCount == 0 && notFoundCount == 0 {
if errCount == 0 && existedCount == 0 {
appInstall.Status = constant.Running
return appInstallRepo.Save(&appInstall)
}
if existedCount == normalCount {
appInstall.Status = constant.Stopped
return appInstallRepo.Save(&appInstall)
}
if errCount == normalCount {
appInstall.Status = constant.Error
}
if notFoundCount == normalCount {
appInstall.Status = constant.Stopped
}
if runningCount < normalCount {
appInstall.Status = constant.UnHealthy
}

2
backend/utils/compose/compose.go

@ -13,7 +13,7 @@ func Up(filePath string) (string, error) {
}
func Down(filePath string) (string, error) {
cmd := exec.Command("docker-compose", "-f", filePath, "down")
cmd := exec.Command("docker-compose", "-f", filePath, "stop")
stdout, err := cmd.CombinedOutput()
return string(stdout), err
}

4
frontend/src/views/app-store/installed/index.vue

@ -50,9 +50,7 @@
trigger="hover"
:content="row.message"
>
<template #reference>
<el-tag type="error">{{ row.status }}</el-tag>
</template>
<template #reference>{{ row.status }}</template>
</el-popover>
<el-tag v-else>

Loading…
Cancel
Save