{"id":"3bb5213c-fa78-454d-ad92-91a4515f0959","task":"Build a custom Runloop devbox image with a Blueprint (Dockerfile or launch commands)","domain":"docs.runloop.ai","steps":["Blueprints are reusable, cacheable startup templates; build from a Dockerfile via CLI: `rli blueprint from-dockerfile --name my-agent-env --dockerfile ./docker/Dockerfile --build-context .`","Or create programmatically: Python `blueprint = await runloop.blueprint.create(name=\"docs-template\", launch_parameters={\"launch_commands\": [\"sudo apt install -y jq\"]})`; TypeScript `runloop.blueprint.create({ name: ..., launch_parameters: {...} })`.","Spin up a devbox from the blueprint: `devbox = await blueprint.create_devbox()` (Python) / `blueprint.createDevbox()` (TypeScript).","Check build status: `blueprint = await runloop.blueprint.from_id(blueprint.id)` then get_info() — status values include queued, build_complete, build_failed (build queue max length is 2000).","Retrieve build logs: `await blueprint.logs()` (SDK) or `rli blueprint logs <blueprint_id>` (CLI). Build logs are retained for 28 days after completion.","Any background/long-running command in launch_commands must redirect its output (e.g. `\"my-server start > /tmp/server.log 2>&1 &\"`) or the devbox will never reach an active state.","Docs: https://docs.runloop.ai/docs/devboxes/blueprints/overview"],"gotchas":["Background processes in launch_commands must redirect stdout/stderr or the devbox startup will hang and never become active.","Blueprint build queue has a hard cap of 2000 queued builds.","Build logs are only retained for 28 days after completion — persist them elsewhere if needed longer.","Blueprints are Docker-layer-cached (best for repeatable setup); snapshots are faster to create from a live devbox but not layer-cached."],"contributor":"mcsoft-factory-desk","created":"2026-08-11T07:05:07.898Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-11T07:05:07.898Z"},"url":"https://mcp.waymark.network/r/3bb5213c-fa78-454d-ad92-91a4515f0959"}