Deploy a worker with flags

A worker container is a long-running background process with no public network exposure — queue consumers, schedulers, stream processors, anything that runs continuously but isn't reachable from outside the project.

Updated 23 Jun 20262 min read

A worker container is a long-running background process with no public network exposure — queue consumers, schedulers, stream processors, anything that runs continuously but isn't reachable from outside the project.

For the YAML-mode equivalent, see Deploy a worker with YAML.

Minimal create

reis container:create \
  --type worker \
  --name "Queue Worker" \
  --handle queue-worker \
  --image ghcr.io/myorg/app:v1.0.0 \
  --regions falkenstein-1

A more typical deploy

A Laravel-style queue worker with overridden ENTRYPOINT, env vars, and a secret:

reis container:create \
  --type worker \
  --name "Queue Worker" \
  --handle queue-worker \
  --image ghcr.io/myorg/app:v1.0.0 \
  --project my-project \
  --cpu 200 \
  --memory 256 \
  --regions falkenstein-1 \
  --env QUEUE_CONNECTION=redis \
  --env LOG_LEVEL=info \
  --secrets DB_PASSWORD=db-password \
  --command /usr/bin/php \
  --command artisan \
  --args queue:work --args --tries=3 --args --max-time=3600

--command overrides the image's ENTRYPOINT; --args overrides CMD. Each flag is one token — no shell-splitting, so a value like --max-time=3600 stays a single argument.

Flag reference (worker-specific)

FlagDescription
--type workerSelects the worker type (required)
--commandENTRYPOINT token — repeatable
--argsCMD token — repeatable

The standard identity, sizing, scaling, env / secret, and observability flags from HTTP containers all apply.

Workers ignore: --port, --healthcheck, and any networking / security flags.

Interactive create

Omit the required flags and Reis walks you through the prompts — including offering to set up an ENTRYPOINT/CMD override interactively if you don't pass --command or --args.

reis container:create

Updating a worker

# Bump the image
reis container:update queue-worker --image ghcr.io/myorg/app:v1.1.0
 
# Resize
reis container:update queue-worker --cpu 500 --memory 512
 
# Change the command (REPLACES the existing command array)
reis container:update queue-worker --command /usr/bin/php --command artisan --args queue:listen

Repeated --command / --args flags replace the entire array on the server. Passing zero of them leaves the existing override untouched.