mirror of
https://github.com/containers/podman.git
synced 2025-06-24 03:08:13 +08:00
Fixed healthcheck default values when container created via compat API
Fixes #11225 Signed-off-by: Milivoje Legenovic <m.legenovic@gmail.com>
This commit is contained in:
@ -356,51 +356,55 @@ func ContainerCreateToContainerCLIOpts(cc handlers.CreateContainerConfig, rtc *c
|
||||
CPUSetMems: cc.HostConfig.CpusetMems,
|
||||
// Detach: false, // don't need
|
||||
// DetachKeys: "", // don't need
|
||||
Devices: devices,
|
||||
DeviceCGroupRule: nil,
|
||||
DeviceReadBPs: readBps,
|
||||
DeviceReadIOPs: readIops,
|
||||
DeviceWriteBPs: writeBps,
|
||||
DeviceWriteIOPs: writeIops,
|
||||
Entrypoint: entrypoint,
|
||||
Env: cc.Config.Env,
|
||||
Expose: expose,
|
||||
GroupAdd: cc.HostConfig.GroupAdd,
|
||||
Hostname: cc.Config.Hostname,
|
||||
ImageVolume: "bind",
|
||||
Init: init,
|
||||
Interactive: cc.Config.OpenStdin,
|
||||
IPC: string(cc.HostConfig.IpcMode),
|
||||
Label: stringMaptoArray(cc.Config.Labels),
|
||||
LogDriver: cc.HostConfig.LogConfig.Type,
|
||||
LogOptions: stringMaptoArray(cc.HostConfig.LogConfig.Config),
|
||||
Name: cc.Name,
|
||||
OOMScoreAdj: cc.HostConfig.OomScoreAdj,
|
||||
Arch: "",
|
||||
OS: "",
|
||||
Variant: "",
|
||||
PID: string(cc.HostConfig.PidMode),
|
||||
PIDsLimit: cc.HostConfig.PidsLimit,
|
||||
Privileged: cc.HostConfig.Privileged,
|
||||
PublishAll: cc.HostConfig.PublishAllPorts,
|
||||
Quiet: false,
|
||||
ReadOnly: cc.HostConfig.ReadonlyRootfs,
|
||||
ReadOnlyTmpFS: true, // podman default
|
||||
Rm: cc.HostConfig.AutoRemove,
|
||||
SecurityOpt: cc.HostConfig.SecurityOpt,
|
||||
StopSignal: cc.Config.StopSignal,
|
||||
StorageOpt: stringMaptoArray(cc.HostConfig.StorageOpt),
|
||||
Sysctl: stringMaptoArray(cc.HostConfig.Sysctls),
|
||||
Systemd: "true", // podman default
|
||||
TmpFS: parsedTmp,
|
||||
TTY: cc.Config.Tty,
|
||||
User: cc.Config.User,
|
||||
UserNS: string(cc.HostConfig.UsernsMode),
|
||||
UTS: string(cc.HostConfig.UTSMode),
|
||||
Mount: mounts,
|
||||
VolumesFrom: cc.HostConfig.VolumesFrom,
|
||||
Workdir: cc.Config.WorkingDir,
|
||||
Net: &netInfo,
|
||||
Devices: devices,
|
||||
DeviceCGroupRule: nil,
|
||||
DeviceReadBPs: readBps,
|
||||
DeviceReadIOPs: readIops,
|
||||
DeviceWriteBPs: writeBps,
|
||||
DeviceWriteIOPs: writeIops,
|
||||
Entrypoint: entrypoint,
|
||||
Env: cc.Config.Env,
|
||||
Expose: expose,
|
||||
GroupAdd: cc.HostConfig.GroupAdd,
|
||||
Hostname: cc.Config.Hostname,
|
||||
ImageVolume: "bind",
|
||||
Init: init,
|
||||
Interactive: cc.Config.OpenStdin,
|
||||
IPC: string(cc.HostConfig.IpcMode),
|
||||
Label: stringMaptoArray(cc.Config.Labels),
|
||||
LogDriver: cc.HostConfig.LogConfig.Type,
|
||||
LogOptions: stringMaptoArray(cc.HostConfig.LogConfig.Config),
|
||||
Name: cc.Name,
|
||||
OOMScoreAdj: cc.HostConfig.OomScoreAdj,
|
||||
Arch: "",
|
||||
OS: "",
|
||||
Variant: "",
|
||||
PID: string(cc.HostConfig.PidMode),
|
||||
PIDsLimit: cc.HostConfig.PidsLimit,
|
||||
Privileged: cc.HostConfig.Privileged,
|
||||
PublishAll: cc.HostConfig.PublishAllPorts,
|
||||
Quiet: false,
|
||||
ReadOnly: cc.HostConfig.ReadonlyRootfs,
|
||||
ReadOnlyTmpFS: true, // podman default
|
||||
Rm: cc.HostConfig.AutoRemove,
|
||||
SecurityOpt: cc.HostConfig.SecurityOpt,
|
||||
StopSignal: cc.Config.StopSignal,
|
||||
StorageOpt: stringMaptoArray(cc.HostConfig.StorageOpt),
|
||||
Sysctl: stringMaptoArray(cc.HostConfig.Sysctls),
|
||||
Systemd: "true", // podman default
|
||||
TmpFS: parsedTmp,
|
||||
TTY: cc.Config.Tty,
|
||||
User: cc.Config.User,
|
||||
UserNS: string(cc.HostConfig.UsernsMode),
|
||||
UTS: string(cc.HostConfig.UTSMode),
|
||||
Mount: mounts,
|
||||
VolumesFrom: cc.HostConfig.VolumesFrom,
|
||||
Workdir: cc.Config.WorkingDir,
|
||||
Net: &netInfo,
|
||||
HealthInterval: DefaultHealthCheckInterval,
|
||||
HealthRetries: DefaultHealthCheckRetries,
|
||||
HealthTimeout: DefaultHealthCheckTimeout,
|
||||
HealthStartPeriod: DefaultHealthCheckStartPeriod,
|
||||
}
|
||||
if !rootless.IsRootless() {
|
||||
var ulimits []string
|
||||
@ -527,10 +531,18 @@ func ContainerCreateToContainerCLIOpts(cc handlers.CreateContainerConfig, rtc *c
|
||||
finCmd = finCmd[:len(finCmd)-1]
|
||||
}
|
||||
cliOpts.HealthCmd = finCmd
|
||||
cliOpts.HealthInterval = cc.Config.Healthcheck.Interval.String()
|
||||
cliOpts.HealthRetries = uint(cc.Config.Healthcheck.Retries)
|
||||
cliOpts.HealthStartPeriod = cc.Config.Healthcheck.StartPeriod.String()
|
||||
cliOpts.HealthTimeout = cc.Config.Healthcheck.Timeout.String()
|
||||
if cc.Config.Healthcheck.Interval > 0 {
|
||||
cliOpts.HealthInterval = cc.Config.Healthcheck.Interval.String()
|
||||
}
|
||||
if cc.Config.Healthcheck.Retries > 0 {
|
||||
cliOpts.HealthRetries = uint(cc.Config.Healthcheck.Retries)
|
||||
}
|
||||
if cc.Config.Healthcheck.StartPeriod > 0 {
|
||||
cliOpts.HealthStartPeriod = cc.Config.Healthcheck.StartPeriod.String()
|
||||
}
|
||||
if cc.Config.Healthcheck.Timeout > 0 {
|
||||
cliOpts.HealthTimeout = cc.Config.Healthcheck.Timeout.String()
|
||||
}
|
||||
}
|
||||
|
||||
// specgen assumes the image name is arg[0]
|
||||
|
@ -356,3 +356,14 @@ t GET containers/$cid/json 200 \
|
||||
.HostConfig.NetworkMode="bridge"
|
||||
|
||||
t DELETE containers/$cid?v=true 204
|
||||
|
||||
# Test Compat Create with healthcheck, check default values
|
||||
t POST containers/create Image=$IMAGE Cmd='["top"]' Healthcheck='{"Test":["true"]}' 201 \
|
||||
.Id~[0-9a-f]\\{64\\}
|
||||
cid=$(jq -r '.Id' <<<"$output")
|
||||
t GET containers/$cid/json 200 \
|
||||
.Config.Healthcheck.Interval=30000000000 \
|
||||
.Config.Healthcheck.Timeout=30000000000 \
|
||||
.Config.Healthcheck.Retries=3
|
||||
|
||||
t DELETE containers/$cid?v=true 204
|
||||
|
Reference in New Issue
Block a user