Skip to content

Command Line Tools

wheels deploy app boot

docker run new containers for the given version, on every host in every role.

wheels deploy app boot --release=<v> [--role=<name>] [--destination=<name>] [--dry-run]
FlagDescription
--release=<v>Required. Version to boot. Throws DeployAppCli.MissingVersion if absent.
--role=<name>Limit to one role. Default: every role.
--destination=<name>Overlay deploy.<name>.yml.
--dry-runPrint the docker run commands without executing.

A literal --version= flag does not work — the CLI’s picocli root intercepts it before deploy dispatch (#2674). Prefer non-numeric release labels: a purely numeric value like --release=1 currently hangs (#3111).

For each host in each role, emits:

docker run --detach --restart unless-stopped \
--name <service>-<role>-<version> \
--network kamal \
--label service=<service> --label role=<role> --label destination=<dest> --label version=<v> \
-e KEY=VALUE ... \
<image>:<version>

boot does not ask the proxy to cut traffic — that’s what wheels deploy does. Use boot for a stand-alone container bring-up; use wheels deploy for a full zero-downtime rollout.

example
wheels deploy app boot --release=abc1234
wheels deploy app boot --release=abc1234 --role=job