docker/create/node: replace goto with for loop

pull/224/head
iwilltry42 4 years ago
parent 3cd4c0a8bc
commit f2c8e0cf03
No known key found for this signature in database
GPG Key ID: 7BA57AD1CFF16110
  1. 10
      pkg/runtimes/docker/container.go

@ -30,6 +30,7 @@ import (
"os" "os"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/filters"
"github.com/docker/docker/client" "github.com/docker/docker/client"
k3d "github.com/rancher/k3d/pkg/types" k3d "github.com/rancher/k3d/pkg/types"
@ -50,20 +51,23 @@ func createContainer(dockerNode *NodeInDocker, name string) error {
} }
// create container // create container
create: // label used to restart creation process, if we're only missing the image var resp container.ContainerCreateCreatedBody
resp, err := docker.ContainerCreate(ctx, &dockerNode.ContainerConfig, &dockerNode.HostConfig, &dockerNode.NetworkingConfig, name) for {
resp, err = docker.ContainerCreate(ctx, &dockerNode.ContainerConfig, &dockerNode.HostConfig, &dockerNode.NetworkingConfig, name)
if err != nil { if err != nil {
if client.IsErrNotFound(err) { if client.IsErrNotFound(err) {
if err := pullImage(&ctx, docker, dockerNode.ContainerConfig.Image); err != nil { if err := pullImage(&ctx, docker, dockerNode.ContainerConfig.Image); err != nil {
log.Errorln("Failed to create container") log.Errorln("Failed to create container")
return err return err
} }
goto create continue
} }
log.Errorln("Failed to create container") log.Errorln("Failed to create container")
return err return err
} }
log.Debugln("Created container", resp.ID) log.Debugln("Created container", resp.ID)
break
}
// start container // start container
if err := docker.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { if err := docker.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil {

Loading…
Cancel
Save