From 861cc1d920dd1ce246be7efe02fda6491449df28 Mon Sep 17 00:00:00 2001 From: YaoZengzeng Date: Tue, 3 Apr 2018 17:45:24 +0800 Subject: [PATCH] bugfix: distinguish cmd and entrypoint better Signed-off-by: YaoZengzeng --- daemon/mgr/container_types.go | 8 +++++--- daemon/mgr/cri.go | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/daemon/mgr/container_types.go b/daemon/mgr/container_types.go index 02764615d..7ea08ff6e 100644 --- a/daemon/mgr/container_types.go +++ b/daemon/mgr/container_types.go @@ -171,12 +171,14 @@ func (meta *ContainerMeta) merge(getconfig func() (v1.ImageConfig, error)) error return err } + // If user specify the Entrypoint, no need to merge image's configuration. + // Otherwise use the image's configuration to fill it. if len(meta.Config.Entrypoint) == 0 { + if len(meta.Config.Cmd) == 0 { + meta.Config.Cmd = config.Cmd + } meta.Config.Entrypoint = config.Entrypoint } - if len(meta.Config.Cmd) == 0 { - meta.Config.Cmd = config.Cmd - } if meta.Config.Env == nil { meta.Config.Env = config.Env } else { diff --git a/daemon/mgr/cri.go b/daemon/mgr/cri.go index 58a946932..99589f4cf 100644 --- a/daemon/mgr/cri.go +++ b/daemon/mgr/cri.go @@ -424,7 +424,8 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta } createConfig := &apitypes.ContainerCreateConfig{ ContainerConfig: apitypes.ContainerConfig{ - Cmd: append(config.Command, config.Args...), + Entrypoint: config.Command, + Cmd: config.Args, Env: generateEnvList(config.GetEnvs()), Image: image, WorkingDir: config.WorkingDir,