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. 26
      pkg/runtimes/docker/container.go

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

Loading…
Cancel
Save