hooks: deduplicate the hooks docs
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
dd6ae21564
commit
2d3065b335
|
@ -5,8 +5,54 @@
|
||||||
Lifecycle hooks allow custom events for different points in a container's runtime.
|
Lifecycle hooks allow custom events for different points in a container's runtime.
|
||||||
Presently there are `Prestart` and `Poststop`.
|
Presently there are `Prestart` and `Poststop`.
|
||||||
|
|
||||||
* `Prestart` is a list of hooks to be run before the container process is executed
|
* [`Prestart`](#pre-start) is a list of hooks to be run before the container process is executed
|
||||||
* `Poststop` is a list of hooks to be run after the container process exits
|
* [`Poststop`](#post-stop)is a list of hooks to be run after the container process exits
|
||||||
|
|
||||||
|
Hooks allow one to run code before/after various lifecycle events of the container.
|
||||||
|
Hooks MUST be called in the listed order.
|
||||||
|
The state of the container is passed to the hooks over stdin, so the hooks could get the information they need to do their work.
|
||||||
|
|
||||||
|
Hook paths are absolute and are executed from the host's filesystem.
|
||||||
|
|
||||||
|
### Pre-start
|
||||||
|
|
||||||
|
The pre-start hooks are called after the container process is spawned, but before the user supplied command is executed.
|
||||||
|
They are called after the container namespaces are created on Linux, so they provide an opportunity to customize the container.
|
||||||
|
In Linux, for e.g., the network namespace could be configured in this hook.
|
||||||
|
|
||||||
|
If a hook returns a non-zero exit code, then an error including the exit code and the stderr is returned to the caller and the container is torn down.
|
||||||
|
|
||||||
|
### Post-stop
|
||||||
|
|
||||||
|
The post-stop hooks are called after the container process is stopped.
|
||||||
|
Cleanup or debugging could be performed in such a hook.
|
||||||
|
If a hook returns a non-zero exit code, then an error is logged and the remaining hooks are executed.
|
||||||
|
|
||||||
|
*Example*
|
||||||
|
|
||||||
|
```json
|
||||||
|
"hooks" : {
|
||||||
|
"prestart": [
|
||||||
|
{
|
||||||
|
"path": "/usr/bin/fix-mounts",
|
||||||
|
"args": ["arg1", "arg2"],
|
||||||
|
"env": [ "key1=value1"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "/usr/bin/setup-network"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"poststop": [
|
||||||
|
{
|
||||||
|
"path": "/usr/sbin/cleanup.sh",
|
||||||
|
"args": ["-f"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`path` is required for a hook.
|
||||||
|
`args` and `env` are optional.
|
||||||
|
|
||||||
## Mount Configuration
|
## Mount Configuration
|
||||||
|
|
||||||
|
|
46
runtime.md
46
runtime.md
|
@ -49,48 +49,4 @@ This event needs to be captured by runc to run onstop event handlers.
|
||||||
|
|
||||||
## Hooks
|
## Hooks
|
||||||
|
|
||||||
Hooks allow one to run code before/after various lifecycle events of the container.
|
See [runtime configuration for hooks](./runtime-config.md)
|
||||||
Hooks MUST be called in the listed order.
|
|
||||||
The state of the container is passed to the hooks over stdin, so the hooks could get the information they need to do their work.
|
|
||||||
|
|
||||||
Hook paths are absolute and are executed from the host's filesystem.
|
|
||||||
|
|
||||||
### Pre-start
|
|
||||||
|
|
||||||
The pre-start hooks are called after the container process is spawned, but before the user supplied command is executed.
|
|
||||||
They are called after the container namespaces are created on Linux, so they provide an opportunity to customize the container.
|
|
||||||
In Linux, for e.g., the network namespace could be configured in this hook.
|
|
||||||
|
|
||||||
If a hook returns a non-zero exit code, then an error including the exit code and the stderr is returned to the caller and the container is torn down.
|
|
||||||
|
|
||||||
### Post-stop
|
|
||||||
|
|
||||||
The post-stop hooks are called after the container process is stopped.
|
|
||||||
Cleanup or debugging could be performed in such a hook.
|
|
||||||
If a hook returns a non-zero exit code, then an error is logged and the remaining hooks are executed.
|
|
||||||
|
|
||||||
*Example*
|
|
||||||
|
|
||||||
```json
|
|
||||||
"hooks" : {
|
|
||||||
"prestart": [
|
|
||||||
{
|
|
||||||
"path": "/usr/bin/fix-mounts",
|
|
||||||
"args": ["arg1", "arg2"],
|
|
||||||
"env": [ "key1=value1"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "/usr/bin/setup-network"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"poststop": [
|
|
||||||
{
|
|
||||||
"path": "/usr/sbin/cleanup.sh",
|
|
||||||
"args": ["-f"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
`path` is required for a hook.
|
|
||||||
`args` and `env` are optional.
|
|
||||||
|
|
Loading…
Reference in New Issue