Merge pull request #4684 from vrothberg/systemd-improvements

container config: add CreateCommand
This commit is contained in:
OpenShift Merge Robot
2019-12-19 19:36:52 +01:00
committed by GitHub
5 changed files with 37 additions and 0 deletions

View File

@ -804,6 +804,10 @@ func CreateContainerFromCreateConfig(r *libpod.Runtime, createConfig *cc.CreateC
return nil, err
}
// Set the CreateCommand explicitly. Some (future) consumers of libpod
// might not want to set it.
options = append(options, libpod.WithCreateCommand())
ctr, err := r.NewContainer(ctx, runtimeSpec, options...)
if err != nil {
return nil, err

View File

@ -232,6 +232,10 @@ type ContainerConfig struct {
// ID of this container's lock
LockID uint32 `json:"lockID"`
// CreateCommand is the full command plus arguments of the process the
// container has been created with.
CreateCommand []string `json:"CreateCommand,omitempty"`
// TODO consider breaking these subsections up into smaller structs
// UID/GID mappings used by the storage

View File

@ -174,6 +174,9 @@ type InspectContainerConfig struct {
StopSignal uint `json:"StopSignal"`
// Configured healthcheck for the container
Healthcheck *manifest.Schema2HealthConfig `json:"Healthcheck,omitempty"`
// CreateCommand is the full command plus arguments of the process the
// container has been created with.
CreateCommand []string `json:"CreateCommand,omitempty"`
}
// InspectContainerHostConfig holds information used when the container was
@ -947,6 +950,8 @@ func (c *Container) generateInspectContainerConfig(spec *spec.Spec) (*InspectCon
// leak.
ctrConfig.Healthcheck = c.config.HealthCheckConfig
ctrConfig.CreateCommand = c.config.CreateCommand
return ctrConfig, nil
}

View File

@ -1413,6 +1413,18 @@ func WithHealthCheck(healthCheck *manifest.Schema2HealthConfig) CtrCreateOption
}
}
// WithCreateCommand adds the full command plus arguments of the current
// process to the container config.
func WithCreateCommand() CtrCreateOption {
return func(ctr *Container) error {
if ctr.valid {
return define.ErrCtrFinalized
}
ctr.config.CreateCommand = os.Args
return nil
}
}
// Volume Creation Options
// WithVolumeName sets the name of the volume.

View File

@ -117,6 +117,18 @@ var _ = Describe("Podman inspect", func() {
Expect(len(result.OutputToStringArray())).To(Equal(1))
})
It("podman inspect container and filter for CreateCommand", func() {
SkipIfRemote()
ls, ec, _ := podmanTest.RunLsContainer("")
Expect(ec).To(Equal(0))
cid := ls.OutputToString()
result := podmanTest.Podman([]string{"inspect", "--format={{.Config.CreateCommand}}", cid})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
Expect(len(result.OutputToStringArray())).To(Equal(1))
})
It("podman inspect -l with additional input should fail", func() {
SkipIfRemote()
result := podmanTest.Podman([]string{"inspect", "-l", "1234foobar"})