diff options
author | Brent Baude <bbaude@redhat.com> | 2020-04-21 09:15:21 -0500 |
---|---|---|
committer | Brent Baude <bbaude@redhat.com> | 2020-04-21 09:15:21 -0500 |
commit | 224a5ce51e3209b481bcb61caebeba02edd2cce9 (patch) | |
tree | c53b3933349b4e84c7f851318bcc036b26030f9b | |
parent | 84bbdcef5d3f6f431fe8fbf9e59896d7fc311111 (diff) | |
download | podman-224a5ce51e3209b481bcb61caebeba02edd2cce9.tar.gz podman-224a5ce51e3209b481bcb61caebeba02edd2cce9.tar.bz2 podman-224a5ce51e3209b481bcb61caebeba02edd2cce9.zip |
add entrypoint from image where needed
if the image specifies both the image and entrypoint, we need to account for that and preprend the entrypoint to the command. this only happens if no user command and entrypoint were supplied.
Signed-off-by: Brent Baude <bbaude@redhat.com>
-rw-r--r-- | pkg/specgen/generate/container.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pkg/specgen/generate/container.go b/pkg/specgen/generate/container.go index d8d3bf11d..8c02731fd 100644 --- a/pkg/specgen/generate/container.go +++ b/pkg/specgen/generate/container.go @@ -13,6 +13,7 @@ import ( ) func CompleteSpec(ctx context.Context, r *libpod.Runtime, s *specgen.SpecGenerator) error { + var appendEntryPoint bool newImage, err := r.ImageRuntime().NewFromLocal(s.Image) if err != nil { @@ -100,6 +101,7 @@ func CompleteSpec(ctx context.Context, r *libpod.Runtime, s *specgen.SpecGenerat return err } if len(s.Entrypoint) < 1 && len(entrypoint) > 0 { + appendEntryPoint = true s.Entrypoint = entrypoint } command, err := newImage.Cmd(ctx) @@ -107,7 +109,10 @@ func CompleteSpec(ctx context.Context, r *libpod.Runtime, s *specgen.SpecGenerat return err } if len(s.Command) < 1 && len(command) > 0 { - s.Command = command + if appendEntryPoint { + s.Command = entrypoint + } + s.Command = append(s.Command, command...) } if len(s.Command) < 1 && len(s.Entrypoint) < 1 { return errors.Errorf("No command provided or as CMD or ENTRYPOINT in this image") |