Skip to content

vamos user guide

Start with the tutorial. It introduces images and filesets, sets up vamos, and builds the TypeScript UI example into a running container.

Use these references when writing your own project:

ReferenceCovers
BUILD languageTargets, steps, and selecting files
CLIBuilding, publishing, loading, saving, and exporting
ConfigurationWorkspaces, parameters, platforms, and shared .star files
Cache and tracesReuse, rebuilding, timestamps, pruning, and inspecting a build

See the examples for complete projects and the build patterns they demonstrate.

Remote builds

By default vamos builds in the process you run it in, with its own build cache and container store. A team can share one build cache and a pool of build machines instead: a coordinator schedules builds across workers that register with it, and any command that builds takes --coordinator http://host:8080, or VAMOS_COORDINATOR, to build there. Targets already built by anyone are reused, independent targets of one build run on different workers at once, and the images come back to the client from a cache registry that the workers push to.

Run a coordinator only on a trusted network: it has no authentication, so anyone who can reach it can build on it and read its cache, and anyone who can reach a pull-through cache reads what its upstream credentials can. The client must reach the coordinator, the cache registry and, for images that are plain pull()s, the pull-through cache, with its own registry credentials. A registry that the coordinator’s registries.conf marks insecure, as the Helm chart’s are, the client reads over plain HTTP too; for another, --tls-verify=false or a registries.conf entry allows one that speaks plain HTTP. A build runs its commands on the platform the coordinator’s workers have; see platforms for how that platform is chosen and what happens when the image being built is for another one. The remote/ directory holds a Docker Compose file that runs the whole arrangement on one machine, for trying it. remote/helm/vamos is a Helm chart that deploys it on Kubernetes, documented by its values file.