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]

| Flag | Description | |------|-------------| | --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-run | Print 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