feat: support compose rebuild operation (#13162)

This commit is contained in:
ssongliu
2026-07-01 16:19:25 +08:00
committed by GitHub
parent 2ec4db8d7e
commit 9073b16baa
4 changed files with 14 additions and 4 deletions

View File

@@ -319,7 +319,7 @@ type ComposeCreate struct {
type ComposeOperation struct {
Name string `json:"name" validate:"required"`
Path string `json:"path"`
Operation string `json:"operation" validate:"required,oneof=up start restart stop down delete"`
Operation string `json:"operation" validate:"required,oneof=up start restart stop down delete rebuild"`
WithFile bool `json:"withFile"`
Force bool `json:"force"`
}

View File

@@ -270,6 +270,10 @@ func (u *ContainerService) ComposeOperation(req dto.ComposeOperation) error {
if stdout, err := compose.Up(req.Path); err != nil {
return fmt.Errorf("docker-compose up failed, std: %s, err: %v", stdout, err)
}
} else if req.Operation == "rebuild" {
if stdout, err := compose.DownAndUp(req.Path); err != nil {
return fmt.Errorf("docker-compose rebuild failed, std: %s, err: %v", stdout, err)
}
} else {
if stdout, err := compose.Operate(req.Path, req.Operation); err != nil {
return fmt.Errorf("docker-compose %s failed, std: %s, err: %v", req.Operation, stdout, err)

View File

@@ -31921,7 +31921,8 @@ const docTemplate = `{
"restart",
"stop",
"down",
"delete"
"delete",
"rebuild"
],
"type": "string"
},
@@ -45494,4 +45495,4 @@ var SwaggerInfo = &swag.Spec{
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
}

View File

@@ -107,6 +107,11 @@
>
{{ $t('commons.button.restart') }}
</el-dropdown-item>
<el-dropdown-item
@click="handleComposeOperate('rebuild', row)"
>
{{ $t('commons.operate.rebuild') }}
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
@@ -794,7 +799,7 @@ const onImportCompose = () => {
});
};
const handleComposeOperate = async (operation: 'up' | 'stop' | 'restart', row: any) => {
const handleComposeOperate = async (operation: 'up' | 'stop' | 'restart' | 'rebuild', row: any) => {
const mes = i18n.global.t('container.composeOperatorHelper', [
row.name,
i18n.global.t('commons.operate.' + operation),