Document exit codes for podman exec

Also fix podman run exit codes to show real messages when failures
happen.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh 2019-06-12 05:06:00 -04:00
parent 56957db468
commit c7ee7f868d
No known key found for this signature in database
GPG key ID: A2DF901DABE2C028
3 changed files with 39 additions and 17 deletions

View file

@ -52,6 +52,34 @@ The default working directory for running binaries within a container is the roo
The image developer can set a different default with the WORKDIR instruction, which can be overridden
when creating the container.
## Exit Status
The exit code from `podman exec` gives information about why the command within the container failed to run or why it exited. When `podman exec` exits with a
non-zero code, the exit codes follow the `chroot` standard, see below:
**_125_** if the error is with podman **_itself_**
$ podman exec --foo ctrID /bin/sh; echo $?
Error: unknown flag: --foo
125
**_126_** if the **_contained command_** cannot be invoked
$ podman exec ctrID /etc; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
126
**_127_** if the **_contained command_** cannot be found
$ podman exec ctrID foo; echo $?
Error: container_linux.go:346: starting container process caused "exec: \"foo\": executable file not found in $PATH": OCI runtime error
127
**_Exit code_** of **_contained command_** otherwise
$ podman exec ctrID /bin/sh -c 'exit 3'
# 3
## EXAMPLES
$ podman exec -it ctrID ls

View file

@ -902,28 +902,25 @@ the exit codes follow the `chroot` standard, see below:
**_125_** if the error is with podman **_itself_**
$ podman run --foo busybox; echo $?
# flag provided but not defined: --foo
See 'podman run --help'.
125
Error: unknown flag: --foo
125
**_126_** if the **_contained command_** cannot be invoked
$ podman run busybox /etc; echo $?
# exec: "/etc": permission denied
podman: Error response from daemon: Contained command could not be invoked
126
Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
126
**_127_** if the **_contained command_** cannot be found
$ podman run busybox foo; echo $?
# exec: "foo": executable file not found in $PATH
podman: Error response from daemon: Contained command not found or does not exist
127
Error: container_linux.go:346: starting container process caused "exec: \"foo\": executable file not found in $PATH": OCI runtime error
127
**_Exit code_** of **_contained command_** otherwise
$ podman run busybox /bin/sh -c 'exit 3'
# 3
3
## EXAMPLES

View file

@ -103,24 +103,21 @@ the exit codes follow the `chroot` standard, see below:
**_125_** if the error is with podman **_itself_**
$ podman run --foo busybox; echo $?
# flag provided but not defined: --foo
See 'podman run --help'.
Error: unknown flag: --foo
125
**_126_** if executing a **_container command_** and the the **_command_** cannot be invoked
$ podman run busybox /etc; echo $?
# exec: "/etc": permission denied
podman: Error response from daemon: Contained command could not be invoked
Error: container_linux.go:346: starting container process caused "exec: \"/etc\": permission denied": OCI runtime error
126
**_127_** if executing a **_container command_** and the the **_command_** cannot be found
$ podman run busybox foo; echo $?
# exec: "foo": executable file not found in $PATH
podman: Error response from daemon: Contained command not found or does not exist
Error: container_linux.go:346: starting container process caused "exec: \"foo\": executable file not found in $PATH": OCI runtime error
127
**_Exit code_** of **_container command_** otherwise
**_Exit code_** of **_contained command_** otherwise
$ podman run busybox /bin/sh -c 'exit 3'
# 3