keel deploy runs a deployment without the UI: it builds the environment
image, executes the steps, streams the log to the terminal, and exits
non-zero on failure. It needs Docker, a keel.yaml in the current
directory, and values for the variables.
Where values come from
In increasing precedence:- Defaults declared in
keel.yaml. - A target’s saved values, with
--target NAME— the values configured inkeel devon this machine. - A var file, with
--var-file path—NAME=valueper line,#comments allowed. - Flags,
--var NAME=value, repeatable.
--target reads .keel/dev.db in the repository and decrypts it with this
machine’s dev.key. It works where the target was created in keel dev,
not on another machine or in CI. For CI, use a var file or flags.--target, the run’s KEEL_TARGET is cli.
Outputs
On success, declared outputs are printed:In CI
A CI job is a machine with Docker, thekeel binary, and the repository.
Provide the values from the CI system’s secret store.
.github/workflows/deploy.yml
Exit codes and signals
0— every step succeeded.1— a step failed, a value was missing or invalid, Docker was unreachable, or the configuration did not load. The message says which.- Ctrl+C (SIGINT) or SIGTERM cancels the run and removes the container; the command reports deployment canceled.