diff --git a/pkg/specgen/generate/container_create.go b/pkg/specgen/generate/container_create.go index febf7276b6..bb96a32a7e 100644 --- a/pkg/specgen/generate/container_create.go +++ b/pkg/specgen/generate/container_create.go @@ -227,7 +227,7 @@ func MakeContainer(ctx context.Context, rt *libpod.Runtime, s *specgen.SpecGener options = append(options, libpod.WithHostUsers(s.HostUsers)) } - command, err := makeCommand(s, imageData, rtc) + command, err := makeCommand(s, imageData) if err != nil { return nil, nil, nil, err } diff --git a/pkg/specgen/generate/oci.go b/pkg/specgen/generate/oci.go index eb899a716a..fdeebe333e 100644 --- a/pkg/specgen/generate/oci.go +++ b/pkg/specgen/generate/oci.go @@ -8,7 +8,6 @@ import ( "strings" "github.com/containers/common/libimage" - "github.com/containers/common/pkg/config" "github.com/containers/podman/v4/libpod/define" "github.com/containers/podman/v4/pkg/specgen" "github.com/opencontainers/runtime-tools/generate" @@ -24,7 +23,7 @@ func addRlimits(s *specgen.SpecGenerator, g *generate.Generator) { } // Produce the final command for the container. -func makeCommand(s *specgen.SpecGenerator, imageData *libimage.ImageData, rtc *config.Config) ([]string, error) { +func makeCommand(s *specgen.SpecGenerator, imageData *libimage.ImageData) ([]string, error) { finalCommand := []string{} entrypoint := s.Entrypoint @@ -51,13 +50,7 @@ func makeCommand(s *specgen.SpecGenerator, imageData *libimage.ImageData, rtc *c } if s.Init { - initPath := s.InitPath - if initPath == "" && rtc != nil { - initPath = rtc.Engine.InitPath - } - if initPath == "" { - return nil, fmt.Errorf("no path to init binary found but container requested an init") - } + // bind mount for this binary is added in addContainerInitBinary() finalCommand = append([]string{define.ContainerInitPath, "--"}, finalCommand...) } diff --git a/pkg/specgen/generate/pause_image.go b/pkg/specgen/generate/pause_image.go index 6df46882f3..9e131625b0 100644 --- a/pkg/specgen/generate/pause_image.go +++ b/pkg/specgen/generate/pause_image.go @@ -55,7 +55,7 @@ func buildPauseImage(rt *libpod.Runtime, rtConfig *config.Config) (string, error // Also look into the path as some distributions install catatonit in // /usr/bin. - catatonitPath, err := rtConfig.FindHelperBinary("catatonit", true) + catatonitPath, err := rtConfig.FindInitBinary() if err != nil { return "", fmt.Errorf("finding pause binary: %w", err) } diff --git a/pkg/specgen/generate/storage.go b/pkg/specgen/generate/storage.go index 0c81821c62..4a7c776364 100644 --- a/pkg/specgen/generate/storage.go +++ b/pkg/specgen/generate/storage.go @@ -131,8 +131,11 @@ func finalizeMounts(ctx context.Context, s *specgen.SpecGenerator, rt *libpod.Ru // If requested, add container init binary if s.Init { initPath := s.InitPath - if initPath == "" && rtc != nil { - initPath = rtc.Engine.InitPath + if initPath == "" { + initPath, err = rtc.FindInitBinary() + if err != nil { + return nil, nil, nil, fmt.Errorf("lookup init binary: %w", err) + } } initMount, err := addContainerInitBinary(s, initPath) if err != nil {