mirror of
https://github.com/containers/podman.git
synced 2025-06-24 19:42:56 +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,
|
CPUSetMems: cc.HostConfig.CpusetMems,
|
||||||
// Detach: false, // don't need
|
// Detach: false, // don't need
|
||||||
// DetachKeys: "", // don't need
|
// DetachKeys: "", // don't need
|
||||||
Devices: devices,
|
Devices: devices,
|
||||||
DeviceCGroupRule: nil,
|
DeviceCGroupRule: nil,
|
||||||
DeviceReadBPs: readBps,
|
DeviceReadBPs: readBps,
|
||||||
DeviceReadIOPs: readIops,
|
DeviceReadIOPs: readIops,
|
||||||
DeviceWriteBPs: writeBps,
|
DeviceWriteBPs: writeBps,
|
||||||
DeviceWriteIOPs: writeIops,
|
DeviceWriteIOPs: writeIops,
|
||||||
Entrypoint: entrypoint,
|
Entrypoint: entrypoint,
|
||||||
Env: cc.Config.Env,
|
Env: cc.Config.Env,
|
||||||
Expose: expose,
|
Expose: expose,
|
||||||
GroupAdd: cc.HostConfig.GroupAdd,
|
GroupAdd: cc.HostConfig.GroupAdd,
|
||||||
Hostname: cc.Config.Hostname,
|
Hostname: cc.Config.Hostname,
|
||||||
ImageVolume: "bind",
|
ImageVolume: "bind",
|
||||||
Init: init,
|
Init: init,
|
||||||
Interactive: cc.Config.OpenStdin,
|
Interactive: cc.Config.OpenStdin,
|
||||||
IPC: string(cc.HostConfig.IpcMode),
|
IPC: string(cc.HostConfig.IpcMode),
|
||||||
Label: stringMaptoArray(cc.Config.Labels),
|
Label: stringMaptoArray(cc.Config.Labels),
|
||||||
LogDriver: cc.HostConfig.LogConfig.Type,
|
LogDriver: cc.HostConfig.LogConfig.Type,
|
||||||
LogOptions: stringMaptoArray(cc.HostConfig.LogConfig.Config),
|
LogOptions: stringMaptoArray(cc.HostConfig.LogConfig.Config),
|
||||||
Name: cc.Name,
|
Name: cc.Name,
|
||||||
OOMScoreAdj: cc.HostConfig.OomScoreAdj,
|
OOMScoreAdj: cc.HostConfig.OomScoreAdj,
|
||||||
Arch: "",
|
Arch: "",
|
||||||
OS: "",
|
OS: "",
|
||||||
Variant: "",
|
Variant: "",
|
||||||
PID: string(cc.HostConfig.PidMode),
|
PID: string(cc.HostConfig.PidMode),
|
||||||
PIDsLimit: cc.HostConfig.PidsLimit,
|
PIDsLimit: cc.HostConfig.PidsLimit,
|
||||||
Privileged: cc.HostConfig.Privileged,
|
Privileged: cc.HostConfig.Privileged,
|
||||||
PublishAll: cc.HostConfig.PublishAllPorts,
|
PublishAll: cc.HostConfig.PublishAllPorts,
|
||||||
Quiet: false,
|
Quiet: false,
|
||||||
ReadOnly: cc.HostConfig.ReadonlyRootfs,
|
ReadOnly: cc.HostConfig.ReadonlyRootfs,
|
||||||
ReadOnlyTmpFS: true, // podman default
|
ReadOnlyTmpFS: true, // podman default
|
||||||
Rm: cc.HostConfig.AutoRemove,
|
Rm: cc.HostConfig.AutoRemove,
|
||||||
SecurityOpt: cc.HostConfig.SecurityOpt,
|
SecurityOpt: cc.HostConfig.SecurityOpt,
|
||||||
StopSignal: cc.Config.StopSignal,
|
StopSignal: cc.Config.StopSignal,
|
||||||
StorageOpt: stringMaptoArray(cc.HostConfig.StorageOpt),
|
StorageOpt: stringMaptoArray(cc.HostConfig.StorageOpt),
|
||||||
Sysctl: stringMaptoArray(cc.HostConfig.Sysctls),
|
Sysctl: stringMaptoArray(cc.HostConfig.Sysctls),
|
||||||
Systemd: "true", // podman default
|
Systemd: "true", // podman default
|
||||||
TmpFS: parsedTmp,
|
TmpFS: parsedTmp,
|
||||||
TTY: cc.Config.Tty,
|
TTY: cc.Config.Tty,
|
||||||
User: cc.Config.User,
|
User: cc.Config.User,
|
||||||
UserNS: string(cc.HostConfig.UsernsMode),
|
UserNS: string(cc.HostConfig.UsernsMode),
|
||||||
UTS: string(cc.HostConfig.UTSMode),
|
UTS: string(cc.HostConfig.UTSMode),
|
||||||
Mount: mounts,
|
Mount: mounts,
|
||||||
VolumesFrom: cc.HostConfig.VolumesFrom,
|
VolumesFrom: cc.HostConfig.VolumesFrom,
|
||||||
Workdir: cc.Config.WorkingDir,
|
Workdir: cc.Config.WorkingDir,
|
||||||
Net: &netInfo,
|
Net: &netInfo,
|
||||||
|
HealthInterval: DefaultHealthCheckInterval,
|
||||||
|
HealthRetries: DefaultHealthCheckRetries,
|
||||||
|
HealthTimeout: DefaultHealthCheckTimeout,
|
||||||
|
HealthStartPeriod: DefaultHealthCheckStartPeriod,
|
||||||
}
|
}
|
||||||
if !rootless.IsRootless() {
|
if !rootless.IsRootless() {
|
||||||
var ulimits []string
|
var ulimits []string
|
||||||
@ -527,10 +531,18 @@ func ContainerCreateToContainerCLIOpts(cc handlers.CreateContainerConfig, rtc *c
|
|||||||
finCmd = finCmd[:len(finCmd)-1]
|
finCmd = finCmd[:len(finCmd)-1]
|
||||||
}
|
}
|
||||||
cliOpts.HealthCmd = finCmd
|
cliOpts.HealthCmd = finCmd
|
||||||
cliOpts.HealthInterval = cc.Config.Healthcheck.Interval.String()
|
if cc.Config.Healthcheck.Interval > 0 {
|
||||||
cliOpts.HealthRetries = uint(cc.Config.Healthcheck.Retries)
|
cliOpts.HealthInterval = cc.Config.Healthcheck.Interval.String()
|
||||||
cliOpts.HealthStartPeriod = cc.Config.Healthcheck.StartPeriod.String()
|
}
|
||||||
cliOpts.HealthTimeout = cc.Config.Healthcheck.Timeout.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]
|
// specgen assumes the image name is arg[0]
|
||||||
|
@ -356,3 +356,14 @@ t GET containers/$cid/json 200 \
|
|||||||
.HostConfig.NetworkMode="bridge"
|
.HostConfig.NetworkMode="bridge"
|
||||||
|
|
||||||
t DELETE containers/$cid?v=true 204
|
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