Skip to main content

anycloud job

Run a finite container Job. Aliases: anycloud submit, anycloud run.

anycloud job [image] [-- command...] [options]

Use -- before a container command that has its own flags. Omitting the image in an interactive terminal opens the GHCR image picker. In CI or another non-interactive shell, pass the image as the first argument.

Options

OptionDescription
-i, --id IDCustom deployment ID
-e, --env KEY=VALUEEnvironment value; repeatable. -e KEY reads the current shell
--env-file FILELoad values from a dotenv file
--secret NAMEInject a named Secret; repeatable
--cluster ID-OR-NAMERun on a Ready Kubernetes cluster
--credentials NAMESelect one saved compute credential
--region REGIONPin one compute region
--vm-type TYPEExact VM; repeat for an ordered fallback pool
--gpu-type TYPEGPU model and optional count; repeat for an ordered fallback pool
--spotUse spot/preemptible capacity
--disk-size GBRoot disk capacity
--disk-tier TIERmedium, high, or ultra
--zone ZONEAvailability zone
--input-bucket NAMERead-only input at /mnt/input
--output-bucket NAMEWritable output at /mnt/output
--checkpoint-bucket NAMEExisting read-write checkpoint at /mnt/checkpoint
--input-storage-credentials NAMECross-account input identity
--input-storage-region REGIONCross-account input Bucket region
--output-storage-credentials NAMECross-account output identity
--output-storage-region REGIONCross-account output Bucket region
--checkpoint-storage-credentials NAMECross-account checkpoint identity
--checkpoint-storage-region REGIONCross-account checkpoint Bucket region
--gpus VALUEDocker GPU exposure: all or a count
--shm-size SIZEShared memory, such as 8g
--memory LIMITContainer memory limit
--cpus COUNTContainer CPU limit
--runtime RUNTIMEDocker runtime
--ipc MODEhost, private, or shareable
--ulimit VALUEDocker ulimit; repeatable
--bind BIND...Host bind mounts

--gpu-type and --vm-type are mutually exclusive. --credentials may appear once. If omitted for VM-backed compute, the CLI selects the sole saved credential or shows a picker in an interactive terminal. Multiple credentials in non-interactive use require --credentials. Local compute is credentialless. Kubernetes Jobs instead require --cluster; cluster selection is mutually exclusive with compute credential, region, VM/GPU type, spot, disk, and zone placement.

An explicit --checkpoint-bucket works with spot or on-demand Jobs, must already exist, and is always retained. Without that flag, a spot Job uses its automatic deployment-named checkpoint bucket and deletes it when the Job finishes.

AWS, Azure, and GCP Jobs use the selected compute identity for automatic spot checkpoints and do not need explicit checkpoint storage flags. Lambda, Vast, Local, and Kubernetes jobs do not have a compatible native bucket identity, so a checkpoint bucket requires explicit checkpoint storage credentials and region. Scoped cross-identity storage currently requires AWS credentials.

Examples

anycloud job ghcr.io/acme/train:latest \
--credentials my-aws \
--gpu-type h100:8 \
--spot \
--gpus all \
-- python train.py --epochs 10
anycloud job ghcr.io/acme/app:latest \
--credentials my-aws \
--vm-type t3.medium
anycloud job ghcr.io/acme/batch:latest \
--cluster production-k8s \
--shm-size 8g \
--gpus 1

Kubernetes Jobs currently translate --gpus and --shm-size. CPU and memory limits are not yet supported for Kubernetes and fail at submission. See Clusters for cluster creation and placement.

GITHUB_TOKEN supplies GitHub authentication in non-interactive use. ANYCLOUD_CREDENTIALS_NAME is the credentials-name fallback when the flag is absent.

For field precedence and constraints, see Configuration.