image executes the
action inside a container image you provide.
Configure it
Addimage to the action and configure a step with inline_contents:
actions/db_migrate.toml
timeout (30 minutes maximum), role,
enable_kube_config, env_vars, and templating all behave exactly as they do when the action runs
on the runner. See Configure actions.
Choosing an image
You can use publically hosted images or component images from your Nuon app config.A public reference
actions/db_migrate.toml
A private image
Publish the image as a container image component and pointimage at its image.ref output:
actions/db_migrate.toml
dependencies.
Because it is a dependency, the run keeps it current. Before the action is planned, Nuon compares the
component’s latest build — for the app config version this install is pinned to — against the image
the install has already synced, and syncs the new one first if they differ. A new build of the
component is therefore in the install’s own registry before the next run of the action, with no
deploy in between; the sync shows up on the install timeline as a sync deploy for that component.
The sync needs a build to pick up. A component whose latest build for that app config version never
finished successfully is left alone, and the action runs against the image the install already has —
the run log says which component was skipped and why.
Building the image
Nuon does not modify the image. It must include every tool and dependency the action needs.Images without a shell
For a binary in a distroless or scratch image, use an absolute executable path in acommand step without a repository source:
/bin/sh. So do inline_contents and repository-backed steps. Pass dynamic values through env_vars when the image has no shell. The binary must write outputs to NUON_ACTIONS_OUTPUT_FILEPATH itself; the shell helper nuon_output is unavailable during direct execution.