linux-build is a Linux box with Go, C and C++ (gcc, cmake), Python, Node and Bazel. You share your folder to its /work, run commands there with envctl exec, and whatever lands in /work/out comes back.
Lease a box
From the folder you ran envctl sandbox up in:
--share src=. maps the template’s src share to this folder. Use a subfolder, like --share src=./services/api, to send only part of a repository.
Run the build
- Before the command runs,
exec syncs your latest edits and waits for the box to acknowledge them.
- Output streams back as it happens, and
envctl exits with the remote exit code.
- The box doesn’t go idle while a command runs, and every command is recorded in the environment’s log in the console.
Get the results
Write outputs under /work/out:
They’re on your machine by the time exec returns, under .remote/<environment>/out/. .remote/ is never synced back up.
Caches
The box keeps tool caches on its own /cache volume for as long as it lives: GOCACHE, GOMODCACHE, npm’s and pip’s caches, and Bazel’s state. A second build in the same box is incremental. To carry your source between boxes, use snapshots. For Bazel actions shared across boxes, use the Bazel cache.
Find and reuse a box
Clean up
Shorten how long a forgotten box lives with --idle 20m, or cap it with --hard 2h.