The stage0 command looks up the buildlet's URL from its environment (GCE metadata service, scaleway, etc), downloads it, and runs it. If not on GCE, such as when in a Linux Docker container being developed and tested locally, the stage0 instead looks for the META_BUILDLET_BINARY_URL environment to have a URL to the buildlet binary.
The stage0 binary is typically baked into the VM or container images or manually copied to dedicated once and is typically never auto-updated. Changes to this binary should be rare, as it's difficult and slow to roll out. Any per-host-type logic to do at start-up should be done in x/build/cmd/buildlet instead, which is re-downloaded once per build, and rolls out easily.