diff options
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/runtime_pod_linux.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libpod/runtime_pod_linux.go b/libpod/runtime_pod_linux.go index 17629defe..dd57007e0 100644 --- a/libpod/runtime_pod_linux.go +++ b/libpod/runtime_pod_linux.go @@ -109,6 +109,15 @@ func (r *Runtime) NewPod(ctx context.Context, options ...PodCreateOption) (*Pod, if err := pod.save(); err != nil { return nil, err } + + // Once the pod infra container has been created, we start it + if err := ctr.Start(ctx); err != nil { + // If the infra container does not start, we need to tear the pod down. + if err2 := r.removePod(ctx, pod, true, true); err2 != nil { + logrus.Errorf("Error removing pod after infra container failed to start: %v", err2) + } + return nil, errors.Wrapf(err, "error starting Infra Container") + } } return pod, nil |