diff options
Diffstat (limited to 'pkg/spec/createconfig.go')
-rw-r--r-- | pkg/spec/createconfig.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pkg/spec/createconfig.go b/pkg/spec/createconfig.go index daa997104..2cf30a59e 100644 --- a/pkg/spec/createconfig.go +++ b/pkg/spec/createconfig.go @@ -1,6 +1,7 @@ package createconfig import ( + "context" "os" "strconv" "strings" @@ -397,3 +398,20 @@ func (c *CreateConfig) getContainerCreateOptions(runtime *libpod.Runtime, pod *l func AddPrivilegedDevices(g *generate.Generator) error { return addPrivilegedDevices(g) } + +func CreateContainerFromCreateConfig(r *libpod.Runtime, createConfig *CreateConfig, ctx context.Context, pod *libpod.Pod) (*libpod.Container, error) { + runtimeSpec, options, err := createConfig.MakeContainerConfig(r, pod) + if err != nil { + return nil, err + } + + // Set the CreateCommand explicitly. Some (future) consumers of libpod + // might not want to set it. + options = append(options, libpod.WithCreateCommand()) + + ctr, err := r.NewContainer(ctx, runtimeSpec, options...) + if err != nil { + return nil, err + } + return ctr, nil +} |