rootless CNI: extract env and cmd from image
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
parent
02f8acce2a
commit
155d43631e
|
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/containernetworking/plugins/pkg/ns"
|
||||
"github.com/containers/podman/v2/libpod/define"
|
||||
"github.com/containers/podman/v2/libpod/image"
|
||||
"github.com/containers/podman/v2/pkg/env"
|
||||
"github.com/containers/podman/v2/pkg/util"
|
||||
"github.com/containers/storage/pkg/lockfile"
|
||||
"github.com/hashicorp/go-multierror"
|
||||
|
|
@ -257,9 +258,23 @@ func startRootlessCNIInfraContainer(ctx context.Context, r *Runtime) (*Container
|
|||
Options: []string{"ro"},
|
||||
}
|
||||
g.AddMount(etcCNINetD)
|
||||
// FIXME: how to propagate ProcessArgs and Envs from Dockerfile?
|
||||
g.SetProcessArgs([]string{"sleep", "infinity"})
|
||||
g.AddProcessEnv("CNI_PATH", "/opt/cni/bin")
|
||||
|
||||
inspectData, err := newImage.Inspect(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
imageEnv, err := env.ParseSlice(inspectData.Config.Env)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for k, v := range imageEnv {
|
||||
g.AddProcessEnv(k, v)
|
||||
}
|
||||
if len(inspectData.Config.Cmd) == 0 {
|
||||
return nil, errors.Errorf("rootless CNI infra image %q has no command specified", imageName)
|
||||
}
|
||||
g.SetProcessArgs(inspectData.Config.Cmd)
|
||||
|
||||
var options []CtrCreateOption
|
||||
options = append(options, WithRootFSFromImage(newImage.ID(), imageName, imageName))
|
||||
options = append(options, WithCtrNamespace(rootlessCNIInfraContainerNamespace))
|
||||
|
|
|
|||
Loading…
Reference in New Issue