MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / stepRecreateContainer

Function stepRecreateContainer

agent/app/service/backup_container.go:568–605  ·  view source on GitHub ↗
(recoverCtx *containerRecoverContext, taskItem *task.Task)

Source from the content-addressed store, hash-verified

566}
567
568func stepRecreateContainer(recoverCtx *containerRecoverContext, taskItem *task.Task) error {
569 ctx := context.Background()
570 if err := ensureContainerRecoverNetworks(recoverCtx); err != nil {
571 return err
572 }
573 if err := ensureContainerRecoverVolumes(recoverCtx); err != nil {
574 return err
575 }
576
577 config := cloneContainerConfig(recoverCtx.inspectInfo.Config)
578 hostConfig := cloneContainerHostConfig(recoverCtx.inspectInfo.HostConfig)
579 if config.Image == "" {
580 config.Image = recoverCtx.meta.Image
581 }
582 if config.Image == "" {
583 return fmt.Errorf("container image not found in backup file")
584 }
585 if !checkImageExist(recoverCtx.client, config.Image) {
586 if err := pullImages(taskItem, recoverCtx.client, config.Image); err != nil {
587 return err
588 }
589 }
590
591 if _, err := recoverCtx.client.ContainerInspect(ctx, recoverCtx.targetName); err == nil {
592 if err := recoverCtx.client.ContainerRemove(ctx, recoverCtx.targetName, container.RemoveOptions{Force: true, RemoveVolumes: false}); err != nil {
593 return err
594 }
595 } else if !client.IsErrNotFound(err) {
596 return err
597 }
598
599 createRes, err := createContainerWithOldNetworks(ctx, recoverCtx.client, config, hostConfig, recoverCtx.inspectInfo.NetworkSettings, recoverCtx.targetName)
600 if err != nil {
601 return err
602 }
603 recoverCtx.createdContainerID = createRes.ID
604 return nil
605}
606
607func removeUnsupportedEndpointStaticIPAM(cli *client.Client, primary *network.NetworkingConfig, extras map[string]*network.EndpointSettings) {
608 if primary != nil {

Callers 1

handleContainerRecoverFunction · 0.85

Calls 7

cloneContainerConfigFunction · 0.85
cloneContainerHostConfigFunction · 0.85
checkImageExistFunction · 0.85
pullImagesFunction · 0.85

Tested by

no test coverage detected