LCOW: pass command arguments without extra quoting
Signed-off-by: John Starks <jostarks@microsoft.com>
This commit is contained in:
parent
d311a3a681
commit
19645521a9
4 changed files with 15 additions and 5 deletions
|
@ -8,7 +8,9 @@ import (
|
||||||
|
|
||||||
func execSetPlatformOpt(c *container.Container, ec *exec.Config, p *libcontainerd.Process) error {
|
func execSetPlatformOpt(c *container.Container, ec *exec.Config, p *libcontainerd.Process) error {
|
||||||
// Process arguments need to be escaped before sending to OCI.
|
// Process arguments need to be escaped before sending to OCI.
|
||||||
p.Args = escapeArgs(p.Args)
|
if c.Platform == "windows" {
|
||||||
p.User.Username = ec.User
|
p.Args = escapeArgs(p.Args)
|
||||||
|
p.User.Username = ec.User
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@ func (daemon *Daemon) createSpec(c *container.Container) (*specs.Spec, error) {
|
||||||
|
|
||||||
// In s.Process
|
// In s.Process
|
||||||
s.Process.Args = append([]string{c.Path}, c.Args...)
|
s.Process.Args = append([]string{c.Path}, c.Args...)
|
||||||
if !c.Config.ArgsEscaped {
|
if !c.Config.ArgsEscaped && img.OS == "windows" {
|
||||||
s.Process.Args = escapeArgs(s.Process.Args)
|
s.Process.Args = escapeArgs(s.Process.Args)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -420,7 +420,11 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
|
||||||
|
|
||||||
// Configure the environment for the process
|
// Configure the environment for the process
|
||||||
createProcessParms.Environment = setupEnvironmentVariables(procToAdd.Env)
|
createProcessParms.Environment = setupEnvironmentVariables(procToAdd.Env)
|
||||||
createProcessParms.CommandLine = strings.Join(procToAdd.Args, " ")
|
if container.ociSpec.Platform.OS == "windows" {
|
||||||
|
createProcessParms.CommandLine = strings.Join(procToAdd.Args, " ")
|
||||||
|
} else {
|
||||||
|
createProcessParms.CommandArgs = procToAdd.Args
|
||||||
|
}
|
||||||
createProcessParms.User = procToAdd.User.Username
|
createProcessParms.User = procToAdd.User.Username
|
||||||
|
|
||||||
logrus.Debugf("libcontainerd: commandLine: %s", createProcessParms.CommandLine)
|
logrus.Debugf("libcontainerd: commandLine: %s", createProcessParms.CommandLine)
|
||||||
|
|
|
@ -82,7 +82,11 @@ func (ctr *container) start(attachStdio StdioCallback) error {
|
||||||
|
|
||||||
// Configure the environment for the process
|
// Configure the environment for the process
|
||||||
createProcessParms.Environment = setupEnvironmentVariables(ctr.ociSpec.Process.Env)
|
createProcessParms.Environment = setupEnvironmentVariables(ctr.ociSpec.Process.Env)
|
||||||
createProcessParms.CommandLine = strings.Join(ctr.ociSpec.Process.Args, " ")
|
if ctr.ociSpec.Platform.OS == "windows" {
|
||||||
|
createProcessParms.CommandLine = strings.Join(ctr.ociSpec.Process.Args, " ")
|
||||||
|
} else {
|
||||||
|
createProcessParms.CommandArgs = ctr.ociSpec.Process.Args
|
||||||
|
}
|
||||||
createProcessParms.User = ctr.ociSpec.Process.User.Username
|
createProcessParms.User = ctr.ociSpec.Process.User.Username
|
||||||
|
|
||||||
// LCOW requires the raw OCI spec passed through HCS and onwards to GCS for the utility VM.
|
// LCOW requires the raw OCI spec passed through HCS and onwards to GCS for the utility VM.
|
||||||
|
|
Loading…
Reference in a new issue