mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
LCOW: fix using wrong shell for healthchecks
As reported in docker/compose#6445, when deploying a Linux container on Windows (LCOW), the daemon made the wrong assumption when deciding which shell to use to execute the healthcheck, looking at the host's platform instead of the container's platform. This patch adds a check for the container's platform when deploying on Windows, and sets the correct shell. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
52c16677b2
commit
3e6a13ccb8
1 changed files with 7 additions and 5 deletions
|
@ -10,7 +10,6 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/docker/docker/api/types"
|
||||
containertypes "github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/api/types/strslice"
|
||||
"github.com/docker/docker/container"
|
||||
"github.com/docker/docker/daemon/exec"
|
||||
|
@ -65,7 +64,7 @@ type cmdProbe struct {
|
|||
func (p *cmdProbe) run(ctx context.Context, d *Daemon, cntr *container.Container) (*types.HealthcheckResult, error) {
|
||||
cmdSlice := strslice.StrSlice(cntr.Config.Healthcheck.Test)[1:]
|
||||
if p.shell {
|
||||
cmdSlice = append(getShell(cntr.Config), cmdSlice...)
|
||||
cmdSlice = append(getShell(cntr), cmdSlice...)
|
||||
}
|
||||
entrypoint, args := d.getEntrypointAndArgs(strslice.StrSlice{}, cmdSlice)
|
||||
execConfig := exec.NewConfig()
|
||||
|
@ -376,12 +375,15 @@ func min(x, y int) int {
|
|||
return y
|
||||
}
|
||||
|
||||
func getShell(config *containertypes.Config) []string {
|
||||
if len(config.Shell) != 0 {
|
||||
return config.Shell
|
||||
func getShell(cntr *container.Container) []string {
|
||||
if len(cntr.Config.Shell) != 0 {
|
||||
return cntr.Config.Shell
|
||||
}
|
||||
if runtime.GOOS != "windows" {
|
||||
return []string{"/bin/sh", "-c"}
|
||||
}
|
||||
if cntr.OS != runtime.GOOS {
|
||||
return []string{"/bin/sh", "-c"}
|
||||
}
|
||||
return []string{"cmd", "/S", "/C"}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue