Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion runtime-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
## Hooks

Lifecycle hooks allow custom events for different points in a container's runtime.
Presently there are `Prestart` and `Poststop`.
Presently there are `Prestart`, `Poststart` and `Poststop`.

* [`Prestart`](#pre-start) is a list of hooks to be run before the container process is executed
* [`Poststart`](#post-start) is a list of hooks to be run immediately after the container process is started
* [`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.
Expand All @@ -22,6 +23,13 @@ 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-start

The post-start hooks are called after the user process is started.
For example this hook can notify user that real process is spawned.

If a hook returns a non-zero exit code, then an error is logged and the remaining hooks are executed.

### Post-stop

The post-stop hooks are called after the container process is stopped.
Expand All @@ -42,6 +50,11 @@ If a hook returns a non-zero exit code, then an error is logged and the remainin
"path": "/usr/bin/setup-network"
}
],
"poststart": [
{
"path": "/usr/bin/notify-start",
},
],
"poststop": [
{
"path": "/usr/sbin/cleanup.sh",
Expand Down
2 changes: 2 additions & 0 deletions runtime_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ type Hooks struct {
// Prestart is a list of hooks to be run before the container process is executed.
// On Linux, they are run after the container namespaces are created.
Prestart []Hook `json:"prestart"`
// Poststart is a list of hooks to be run after the container process is started.
Poststart []Hook `json:"poststart"`
// Poststop is a list of hooks to be run after the container process exits.
Poststop []Hook `json:"poststop"`
}
Expand Down