diff options
author | Jake Correnti <jcorrenti13@gmail.com> | 2022-06-16 15:57:01 -0400 |
---|---|---|
committer | Jake Correnti <jcorrenti13@gmail.com> | 2022-07-05 08:02:22 -0400 |
commit | 5633ef1d15c17fa2e0249710c7591da777cd7b5e (patch) | |
tree | 35439157caae1692340b4fa1f2de8d6f876bcbc6 /libpod | |
parent | d1e1400747fd3266bfc14d62b4174cd601107003 (diff) | |
download | podman-5633ef1d15c17fa2e0249710c7591da777cd7b5e.tar.gz podman-5633ef1d15c17fa2e0249710c7591da777cd7b5e.tar.bz2 podman-5633ef1d15c17fa2e0249710c7591da777cd7b5e.zip |
Docker-compose disable healthcheck properly handled
Previously, if a container had healthchecks disabled in the
docker-compose.yml file and the user did a `podman inspect <container>`,
they would have an incorrect output:
```
"Healthcheck":{
"Test":[
"CMD-SHELL",
"NONE"
],
"Interval":30000000000,
"Timeout":30000000000,
"Retries":3
}
```
After a quick change, the correct output is now the result:
```
"Healthcheck":{
"Test":[
"NONE"
]
}
```
Additionally, I extracted the hard-coded strings that were used for
comparisons into constants in `libpod/define` to prevent a similar issue
from recurring.
Closes: #14493
Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/define/healthchecks.go | 10 | ||||
-rw-r--r-- | libpod/healthcheck.go | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/libpod/define/healthchecks.go b/libpod/define/healthchecks.go index bde449d30..f71274350 100644 --- a/libpod/define/healthchecks.go +++ b/libpod/define/healthchecks.go @@ -47,3 +47,13 @@ const ( // DefaultHealthCheckTimeout default value DefaultHealthCheckTimeout = "30s" ) + +// HealthConfig.Test options +const ( + // HealthConfigTestNone disables healthcheck + HealthConfigTestNone = "NONE" + // HealthConfigTestCmd execs arguments directly + HealthConfigTestCmd = "CMD" + // HealthConfigTestCmdShell runs commands with the system's default shell + HealthConfigTestCmdShell = "CMD-SHELL" +) diff --git a/libpod/healthcheck.go b/libpod/healthcheck.go index 95c70b60e..df6f00e7e 100644 --- a/libpod/healthcheck.go +++ b/libpod/healthcheck.go @@ -47,11 +47,11 @@ func (c *Container) runHealthCheck() (define.HealthCheckStatus, error) { return define.HealthCheckNotDefined, errors.Errorf("container %s has no defined healthcheck", c.ID()) } switch hcCommand[0] { - case "", "NONE": + case "", define.HealthConfigTestNone: return define.HealthCheckNotDefined, errors.Errorf("container %s has no defined healthcheck", c.ID()) - case "CMD": + case define.HealthConfigTestCmd: newCommand = hcCommand[1:] - case "CMD-SHELL": + case define.HealthConfigTestCmdShell: // TODO: SHELL command from image not available in Container - use Docker default newCommand = []string{"/bin/sh", "-c", strings.Join(hcCommand[1:], " ")} default: |