[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-railway-railpack":3,"mdc-rtd592-key":38,"related-org-railway-railpack":2181,"related-repo-railway-railpack":2206},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":34,"sourceUrl":27,"mdContent":37},"railpack","configure and troubleshoot Railpack builds","Configure and troubleshoot Railpack builds, with emphasis on RAILPACK_* environment variables, railpack.json overlays, build-plan inspection, local CLI installation and usage, and local BuildKit containers. Use for Railpack provider configuration, custom install\u002Fbuild\u002Fstart commands, Mise or Apt packages, build or runtime variables and secrets, generated-plan debugging, BUILDKIT_HOST errors, or running Railpack from a release or source checkout.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"railway","Railway","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Frailway.png","railwayapp",[13,17,20,23],{"name":14,"slug":15,"type":16},"Configuration","configuration","tag",{"name":18,"slug":19,"type":16},"CLI","cli",{"name":21,"slug":22,"type":16},"Deployment","deployment",{"name":24,"slug":25,"type":16},"Engineering","engineering",1129,"https:\u002F\u002Fgithub.com\u002Frailwayapp\u002Frailpack","2026-07-30T05:53:37.044659",null,139,[32,33,8],"buildkit","oci-image",{"repoUrl":27,"stars":26,"forks":30,"topics":35,"description":36},[32,33,8],"Zero-config application builder that automatically analyzes and turns your code into an image","---\nname: railpack\ndescription: >-\n  Configure and troubleshoot Railpack builds, with emphasis on RAILPACK_*\n  environment variables, railpack.json overlays, build-plan inspection, local\n  CLI installation and usage, and local BuildKit containers. Use for Railpack\n  provider configuration, custom install\u002Fbuild\u002Fstart commands, Mise or Apt\n  packages, build or runtime variables and secrets, generated-plan debugging,\n  BUILDKIT_HOST errors, or running Railpack from a release or source checkout.\n---\n\n# Railpack\n\nCustomize the generated BuildKit LLB without introducing a Dockerfile. Do not\npropose a Dockerfile as the solution to a Railpack configuration problem.\n\n## Use current sources\n\nFetch \u003Chttps:\u002F\u002Frailpack.com\u002Fllms.txt> as the documentation index before relying\non Railpack behavior. Open only the pages relevant to the task. Search\n\u003Chttps:\u002F\u002Frailpack.com\u002Fllms-full.txt> when the answer spans several sections.\n\nPrioritize:\n\n- Environment Variables plus the detected language's page for `RAILPACK_*`.\n- Configuration File for `railpack.json` fields and merge behavior.\n- Secrets and Environment Variables for build-time versus runtime values.\n- CLI Reference, Installation, and Getting Started for local commands.\n\nWhen working in a Railpack source checkout, also inspect its instructions,\n`mise.toml`, current documentation source, and CLI implementation. The checkout\nmay be ahead of the published docs. Verify flags with `railpack --help` or the\ncheckout's CLI task. Link the relevant public docs in user-facing guidance.\n\n## Follow the configuration workflow\n\n1. Inspect the application manifests, lockfiles, version files, start scripts,\n   existing `railpack.json`, and deployment configuration. Do not expose secret\n   values while inspecting the environment.\n2. Generate a baseline plan before changing configuration when the CLI is\n   available:\n\n   ```sh\n   railpack info .\n   railpack plan .\n   ```\n\n3. Use a documented `RAILPACK_*` variable for a simple supported override. Use\n   `railpack.json` for structured changes, additions to generated arrays,\n   custom steps, layers, caches, variables, or secrets.\n4. Generate the plan again and compare the relevant steps, deploy inputs,\n   packages, variables, and start command.\n5. Run a BuildKit build only when execution is part of the request.\n\nPrefer the smallest targeted override. Do not set the same option through CLI\nflags, environment variables, and `railpack.json`; mixed configuration obscures\nwhich value wins.\n\n## Configure with `RAILPACK_*`\n\nConfirm every name and value format in the shared environment-variable page or\nthe relevant language page. Common build-plan variables include:\n\n- `RAILPACK_INSTALL_CMD`\n- `RAILPACK_BUILD_CMD`\n- `RAILPACK_START_CMD`\n- `RAILPACK_PACKAGES`\n- `RAILPACK_BUILD_APT_PACKAGES`\n- `RAILPACK_DEPLOY_APT_PACKAGES`\n- `RAILPACK_DISABLE_CACHES`\n- `RAILPACK_CONFIG_FILE`\n\nTreat this list as a routing aid, not a complete reference. Provider-specific\nvariables control language versions, package managers, framework selection, and\nprovider features.\n\nUnderstand replacement semantics:\n\n- `RAILPACK_INSTALL_CMD` and `RAILPACK_BUILD_CMD` replace provider-generated\n  command lists; they do not append.\n- `RAILPACK_START_CMD` replaces the detected start command.\n- Use `railpack.json` with `\"...\"` when adding a command while retaining\n  generated commands.\n\nUse space-separated values for variables documented as lists. Include `...`\nwhen adding Apt packages without replacing Railpack's generated packages:\n\n```sh\nRAILPACK_PACKAGES=\"node@22 jq@latest\"\nRAILPACK_BUILD_APT_PACKAGES=\"... build-essential libssl-dev\"\nRAILPACK_DEPLOY_APT_PACKAGES=\"... ffmpeg\"\n```\n\nFor local `plan`, `info`, and `build` commands, pass build-plan variables\nthrough `--env`. The CLI does not automatically import arbitrary exported\nvariables:\n\n```sh\nrailpack plan \\\n  --env 'RAILPACK_PACKAGES=node@22 jq@latest' \\\n  --env 'RAILPACK_START_CMD=node dist\u002Fserver.js' \\\n  .\n\nexport RAILPACK_NODE_VERSION=22\nrailpack build --env RAILPACK_NODE_VERSION .\n```\n\nPrefer name-only `--env SECRET_NAME` after exporting a secret so its value is\nnot placed in the command arguments. Treat values supplied through `--env` as\nbuild-time secrets, not runtime configuration.\n\nSet non-secret build-step values in `steps.\u003Cname>.variables`. Set values that\nmust be baked into the final image in `deploy.variables`; prefer the hosting\nplatform's runtime environment for environment-specific values. Never put\nsecret values in `railpack.json`.\n\nTreat `RAILPACK_VERBOSE` separately: it is a process-level CLI option. Use\n`RAILPACK_VERBOSE=1 railpack build ...` or `railpack --verbose build ...`, not\n`--env RAILPACK_VERBOSE=1`.\n\n## Construct `railpack.json` as an overlay\n\nPlace `railpack.json` at the build-context root. For another project-relative\npath, prefer `--config-file path\u002Fto\u002Fconfig.json`; when using\n`RAILPACK_CONFIG_FILE` with the local CLI, pass it through `--env`.\n\nAlways include the schema:\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fschema.railpack.com\"\n}\n```\n\nWrite the smallest overlay on the provider-generated plan. Do not copy the\nentire generated plan into the config file. Use `\"...\"` at the desired position\nin a configurable array to retain generated values; omitting it replaces that\narray.\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fschema.railpack.com\",\n  \"packages\": {\n    \"node\": \"22\"\n  },\n  \"buildAptPackages\": [\"...\", \"build-essential\"],\n  \"steps\": {\n    \"build\": {\n      \"commands\": [\"...\", \"npm run postbuild\"]\n    }\n  },\n  \"deploy\": {\n    \"aptPackages\": [\"...\", \"ffmpeg\"],\n    \"startCommand\": \"node dist\u002Fserver.js\"\n  }\n}\n```\n\nUse the documented model:\n\n- Set `provider` only to override failed or ambiguous autodetection.\n- Set `packages` for Mise-managed tools and versions.\n- Set root `buildAptPackages` for build-only Apt packages.\n- Set `steps.\u003Cname>` for inputs, commands, caches, variables, assets, secrets,\n  and deploy outputs.\n- Set `deploy` for runtime base, inputs, Apt packages, paths, variables, and\n  start command.\n- Filter layer inputs with `include` and `exclude` when only selected artifacts\n  should enter another step or the runtime image.\n\nValidate names and shapes against \u003Chttps:\u002F\u002Fschema.railpack.com>. Use plan\ngeneration as the semantic validation:\n\n```sh\nrailpack plan --out tmp\u002Frailpack-plan.json .\nrailpack info --format json --out tmp\u002Frailpack-info.json .\n```\n\nInspect the generated output for accidental replacement of commands, Apt\npackages, inputs, paths, caches, or secrets. Keep generated plan files separate\nfrom the source `railpack.json` overlay.\n\n## Install and run locally\n\nCheck for an existing binary first:\n\n```sh\ncommand -v railpack\nrailpack --version\nrailpack --help\n```\n\nIf installation is requested, choose a current documented method. With Mise:\n\n```sh\nmise use github:railwayapp\u002Frailpack@latest\nrailpack --help\n```\n\nOr use the official release installer:\n\n```sh\ncurl -sSL https:\u002F\u002Frailpack.com\u002Finstall.sh | sh\nrailpack --help\n```\n\nPin the Railpack version when reproducibility matters. Consult the Installation\npage for current version and destination controls instead of inventing flags.\n\nInside the Railpack repository, follow its checked-in instructions and\n`mise.toml`. Prefer its development task over an installed release:\n\n```sh\nmise install\nmise run setup\nmise run cli -- --help\n```\n\nUse `railpack plan` or `mise run cli -- plan` without BuildKit. Use\n`railpack build` for a normal local image build; reserve `prepare` and the\nBuildKit frontend workflow for platform integrations.\n\n## Run a local BuildKit container\n\nRequire a working Docker engine with Linux containers. Starting a privileged\ncontainer changes local Docker state; do it only when a local build is within\nscope.\n\nInspect any existing container named `buildkit` before reusing the name. Reuse\nor start an appropriate existing daemon, or choose another name and use the same\nname in `BUILDKIT_HOST`. Do not remove an unknown container to resolve a name\ncollision.\n\nFor a disposable local daemon:\n\n```sh\ndocker run --rm --privileged --detach \\\n  --name buildkit \\\n  moby\u002Fbuildkit:latest\n\ndocker exec buildkit buildctl debug workers\n```\n\nPass `BUILDKIT_HOST` in the same shell invocation as the build. This also works\nwhen command executions do not share exported shell state:\n\n```sh\nBUILDKIT_HOST='docker-container:\u002F\u002Fbuildkit' \\\n  railpack build \\\n    --name my-app \\\n    --show-plan \\\n    --progress plain \\\n    .\u002Fpath\u002Fto\u002Fproject\n```\n\nThe URI's final component must match the container name. Pin the BuildKit image\nfor reproducible environments. If the source checkout provides\n`mise run setup`, prefer that task because it may mount repository-specific\nBuildKit configuration and set `BUILDKIT_HOST`.\n\nUse `docker logs buildkit` for daemon or connection failures. Stop the container\nonly if it was created for the task; `docker stop buildkit` also removes this\ndisposable `--rm` container.\n\n## Troubleshoot in order\n\n1. Verify the installed or development CLI and relevant subcommand help.\n2. Generate a plan without BuildKit and resolve detection or config errors.\n3. Verify every `RAILPACK_*` variable, its list format, and whether it replaces\n   generated behavior.\n4. Verify every modified array retains `\"...\"` unless replacement is intended.\n5. Confirm Docker is reachable, the BuildKit worker is ready, and\n   `BUILDKIT_HOST` names the correct container.\n6. Re-run with `railpack --verbose build`, `--show-plan`, and plain progress.\n7. Inspect BuildKit logs and Docker credentials for private images.\n\nIdentify the failing layer before broadening configuration. Explain the cause\nand keep the fix targeted.\n",{"data":39,"body":40},{"name":4,"description":6},{"type":41,"children":42},"root",[43,51,57,64,87,92,134,155,161,261,273,284,289,364,369,374,424,437,522,559,703,723,750,786,799,832,837,898,910,1346,1351,1433,1445,1511,1523,1529,1534,1584,1589,1625,1630,1676,1681,1693,1754,1789,1795,1800,1820,1825,1926,1938,2043,2062,2090,2096,2170,2175],{"type":44,"tag":45,"props":46,"children":47},"element","h1",{"id":4},[48],{"type":49,"value":50},"text","Railpack",{"type":44,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"Customize the generated BuildKit LLB without introducing a Dockerfile. Do not\npropose a Dockerfile as the solution to a Railpack configuration problem.",{"type":44,"tag":58,"props":59,"children":61},"h2",{"id":60},"use-current-sources",[62],{"type":49,"value":63},"Use current sources",{"type":44,"tag":52,"props":65,"children":66},{},[67,69,77,79,85],{"type":49,"value":68},"Fetch ",{"type":44,"tag":70,"props":71,"children":75},"a",{"href":72,"rel":73},"https:\u002F\u002Frailpack.com\u002Fllms.txt",[74],"nofollow",[76],{"type":49,"value":72},{"type":49,"value":78}," as the documentation index before relying\non Railpack behavior. Open only the pages relevant to the task. Search\n",{"type":44,"tag":70,"props":80,"children":83},{"href":81,"rel":82},"https:\u002F\u002Frailpack.com\u002Fllms-full.txt",[74],[84],{"type":49,"value":81},{"type":49,"value":86}," when the answer spans several sections.",{"type":44,"tag":52,"props":88,"children":89},{},[90],{"type":49,"value":91},"Prioritize:",{"type":44,"tag":93,"props":94,"children":95},"ul",{},[96,111,124,129],{"type":44,"tag":97,"props":98,"children":99},"li",{},[100,102,109],{"type":49,"value":101},"Environment Variables plus the detected language's page for ",{"type":44,"tag":103,"props":104,"children":106},"code",{"className":105},[],[107],{"type":49,"value":108},"RAILPACK_*",{"type":49,"value":110},".",{"type":44,"tag":97,"props":112,"children":113},{},[114,116,122],{"type":49,"value":115},"Configuration File for ",{"type":44,"tag":103,"props":117,"children":119},{"className":118},[],[120],{"type":49,"value":121},"railpack.json",{"type":49,"value":123}," fields and merge behavior.",{"type":44,"tag":97,"props":125,"children":126},{},[127],{"type":49,"value":128},"Secrets and Environment Variables for build-time versus runtime values.",{"type":44,"tag":97,"props":130,"children":131},{},[132],{"type":49,"value":133},"CLI Reference, Installation, and Getting Started for local commands.",{"type":44,"tag":52,"props":135,"children":136},{},[137,139,145,147,153],{"type":49,"value":138},"When working in a Railpack source checkout, also inspect its instructions,\n",{"type":44,"tag":103,"props":140,"children":142},{"className":141},[],[143],{"type":49,"value":144},"mise.toml",{"type":49,"value":146},", current documentation source, and CLI implementation. The checkout\nmay be ahead of the published docs. Verify flags with ",{"type":44,"tag":103,"props":148,"children":150},{"className":149},[],[151],{"type":49,"value":152},"railpack --help",{"type":49,"value":154}," or the\ncheckout's CLI task. Link the relevant public docs in user-facing guidance.",{"type":44,"tag":58,"props":156,"children":158},{"id":157},"follow-the-configuration-workflow",[159],{"type":49,"value":160},"Follow the configuration workflow",{"type":44,"tag":162,"props":163,"children":164},"ol",{},[165,177,232,251,256],{"type":44,"tag":97,"props":166,"children":167},{},[168,170,175],{"type":49,"value":169},"Inspect the application manifests, lockfiles, version files, start scripts,\nexisting ",{"type":44,"tag":103,"props":171,"children":173},{"className":172},[],[174],{"type":49,"value":121},{"type":49,"value":176},", and deployment configuration. Do not expose secret\nvalues while inspecting the environment.",{"type":44,"tag":97,"props":178,"children":179},{},[180,182],{"type":49,"value":181},"Generate a baseline plan before changing configuration when the CLI is\navailable:",{"type":44,"tag":183,"props":184,"children":189},"pre",{"className":185,"code":186,"language":187,"meta":188,"style":188},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","railpack info .\nrailpack plan .\n","sh","",[190],{"type":44,"tag":103,"props":191,"children":192},{"__ignoreMap":188},[193,215],{"type":44,"tag":194,"props":195,"children":198},"span",{"class":196,"line":197},"line",1,[199,204,210],{"type":44,"tag":194,"props":200,"children":202},{"style":201},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[203],{"type":49,"value":4},{"type":44,"tag":194,"props":205,"children":207},{"style":206},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[208],{"type":49,"value":209}," info",{"type":44,"tag":194,"props":211,"children":212},{"style":206},[213],{"type":49,"value":214}," .\n",{"type":44,"tag":194,"props":216,"children":218},{"class":196,"line":217},2,[219,223,228],{"type":44,"tag":194,"props":220,"children":221},{"style":201},[222],{"type":49,"value":4},{"type":44,"tag":194,"props":224,"children":225},{"style":206},[226],{"type":49,"value":227}," plan",{"type":44,"tag":194,"props":229,"children":230},{"style":206},[231],{"type":49,"value":214},{"type":44,"tag":97,"props":233,"children":234},{},[235,237,242,244,249],{"type":49,"value":236},"Use a documented ",{"type":44,"tag":103,"props":238,"children":240},{"className":239},[],[241],{"type":49,"value":108},{"type":49,"value":243}," variable for a simple supported override. Use\n",{"type":44,"tag":103,"props":245,"children":247},{"className":246},[],[248],{"type":49,"value":121},{"type":49,"value":250}," for structured changes, additions to generated arrays,\ncustom steps, layers, caches, variables, or secrets.",{"type":44,"tag":97,"props":252,"children":253},{},[254],{"type":49,"value":255},"Generate the plan again and compare the relevant steps, deploy inputs,\npackages, variables, and start command.",{"type":44,"tag":97,"props":257,"children":258},{},[259],{"type":49,"value":260},"Run a BuildKit build only when execution is part of the request.",{"type":44,"tag":52,"props":262,"children":263},{},[264,266,271],{"type":49,"value":265},"Prefer the smallest targeted override. Do not set the same option through CLI\nflags, environment variables, and ",{"type":44,"tag":103,"props":267,"children":269},{"className":268},[],[270],{"type":49,"value":121},{"type":49,"value":272},"; mixed configuration obscures\nwhich value wins.",{"type":44,"tag":58,"props":274,"children":276},{"id":275},"configure-with-railpack_",[277,279],{"type":49,"value":278},"Configure with ",{"type":44,"tag":103,"props":280,"children":282},{"className":281},[],[283],{"type":49,"value":108},{"type":44,"tag":52,"props":285,"children":286},{},[287],{"type":49,"value":288},"Confirm every name and value format in the shared environment-variable page or\nthe relevant language page. Common build-plan variables include:",{"type":44,"tag":93,"props":290,"children":291},{},[292,301,310,319,328,337,346,355],{"type":44,"tag":97,"props":293,"children":294},{},[295],{"type":44,"tag":103,"props":296,"children":298},{"className":297},[],[299],{"type":49,"value":300},"RAILPACK_INSTALL_CMD",{"type":44,"tag":97,"props":302,"children":303},{},[304],{"type":44,"tag":103,"props":305,"children":307},{"className":306},[],[308],{"type":49,"value":309},"RAILPACK_BUILD_CMD",{"type":44,"tag":97,"props":311,"children":312},{},[313],{"type":44,"tag":103,"props":314,"children":316},{"className":315},[],[317],{"type":49,"value":318},"RAILPACK_START_CMD",{"type":44,"tag":97,"props":320,"children":321},{},[322],{"type":44,"tag":103,"props":323,"children":325},{"className":324},[],[326],{"type":49,"value":327},"RAILPACK_PACKAGES",{"type":44,"tag":97,"props":329,"children":330},{},[331],{"type":44,"tag":103,"props":332,"children":334},{"className":333},[],[335],{"type":49,"value":336},"RAILPACK_BUILD_APT_PACKAGES",{"type":44,"tag":97,"props":338,"children":339},{},[340],{"type":44,"tag":103,"props":341,"children":343},{"className":342},[],[344],{"type":49,"value":345},"RAILPACK_DEPLOY_APT_PACKAGES",{"type":44,"tag":97,"props":347,"children":348},{},[349],{"type":44,"tag":103,"props":350,"children":352},{"className":351},[],[353],{"type":49,"value":354},"RAILPACK_DISABLE_CACHES",{"type":44,"tag":97,"props":356,"children":357},{},[358],{"type":44,"tag":103,"props":359,"children":361},{"className":360},[],[362],{"type":49,"value":363},"RAILPACK_CONFIG_FILE",{"type":44,"tag":52,"props":365,"children":366},{},[367],{"type":49,"value":368},"Treat this list as a routing aid, not a complete reference. Provider-specific\nvariables control language versions, package managers, framework selection, and\nprovider features.",{"type":44,"tag":52,"props":370,"children":371},{},[372],{"type":49,"value":373},"Understand replacement semantics:",{"type":44,"tag":93,"props":375,"children":376},{},[377,394,404],{"type":44,"tag":97,"props":378,"children":379},{},[380,385,387,392],{"type":44,"tag":103,"props":381,"children":383},{"className":382},[],[384],{"type":49,"value":300},{"type":49,"value":386}," and ",{"type":44,"tag":103,"props":388,"children":390},{"className":389},[],[391],{"type":49,"value":309},{"type":49,"value":393}," replace provider-generated\ncommand lists; they do not append.",{"type":44,"tag":97,"props":395,"children":396},{},[397,402],{"type":44,"tag":103,"props":398,"children":400},{"className":399},[],[401],{"type":49,"value":318},{"type":49,"value":403}," replaces the detected start command.",{"type":44,"tag":97,"props":405,"children":406},{},[407,409,414,416,422],{"type":49,"value":408},"Use ",{"type":44,"tag":103,"props":410,"children":412},{"className":411},[],[413],{"type":49,"value":121},{"type":49,"value":415}," with ",{"type":44,"tag":103,"props":417,"children":419},{"className":418},[],[420],{"type":49,"value":421},"\"...\"",{"type":49,"value":423}," when adding a command while retaining\ngenerated commands.",{"type":44,"tag":52,"props":425,"children":426},{},[427,429,435],{"type":49,"value":428},"Use space-separated values for variables documented as lists. Include ",{"type":44,"tag":103,"props":430,"children":432},{"className":431},[],[433],{"type":49,"value":434},"...",{"type":49,"value":436},"\nwhen adding Apt packages without replacing Railpack's generated packages:",{"type":44,"tag":183,"props":438,"children":440},{"className":185,"code":439,"language":187,"meta":188,"style":188},"RAILPACK_PACKAGES=\"node@22 jq@latest\"\nRAILPACK_BUILD_APT_PACKAGES=\"... build-essential libssl-dev\"\nRAILPACK_DEPLOY_APT_PACKAGES=\"... ffmpeg\"\n",[441],{"type":44,"tag":103,"props":442,"children":443},{"__ignoreMap":188},[444,473,497],{"type":44,"tag":194,"props":445,"children":446},{"class":196,"line":197},[447,452,458,463,468],{"type":44,"tag":194,"props":448,"children":450},{"style":449},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[451],{"type":49,"value":327},{"type":44,"tag":194,"props":453,"children":455},{"style":454},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[456],{"type":49,"value":457},"=",{"type":44,"tag":194,"props":459,"children":460},{"style":454},[461],{"type":49,"value":462},"\"",{"type":44,"tag":194,"props":464,"children":465},{"style":206},[466],{"type":49,"value":467},"node@22 jq@latest",{"type":44,"tag":194,"props":469,"children":470},{"style":454},[471],{"type":49,"value":472},"\"\n",{"type":44,"tag":194,"props":474,"children":475},{"class":196,"line":217},[476,480,484,488,493],{"type":44,"tag":194,"props":477,"children":478},{"style":449},[479],{"type":49,"value":336},{"type":44,"tag":194,"props":481,"children":482},{"style":454},[483],{"type":49,"value":457},{"type":44,"tag":194,"props":485,"children":486},{"style":454},[487],{"type":49,"value":462},{"type":44,"tag":194,"props":489,"children":490},{"style":206},[491],{"type":49,"value":492},"... build-essential libssl-dev",{"type":44,"tag":194,"props":494,"children":495},{"style":454},[496],{"type":49,"value":472},{"type":44,"tag":194,"props":498,"children":500},{"class":196,"line":499},3,[501,505,509,513,518],{"type":44,"tag":194,"props":502,"children":503},{"style":449},[504],{"type":49,"value":345},{"type":44,"tag":194,"props":506,"children":507},{"style":454},[508],{"type":49,"value":457},{"type":44,"tag":194,"props":510,"children":511},{"style":454},[512],{"type":49,"value":462},{"type":44,"tag":194,"props":514,"children":515},{"style":206},[516],{"type":49,"value":517},"... ffmpeg",{"type":44,"tag":194,"props":519,"children":520},{"style":454},[521],{"type":49,"value":472},{"type":44,"tag":52,"props":523,"children":524},{},[525,527,533,535,541,543,549,551,557],{"type":49,"value":526},"For local ",{"type":44,"tag":103,"props":528,"children":530},{"className":529},[],[531],{"type":49,"value":532},"plan",{"type":49,"value":534},", ",{"type":44,"tag":103,"props":536,"children":538},{"className":537},[],[539],{"type":49,"value":540},"info",{"type":49,"value":542},", and ",{"type":44,"tag":103,"props":544,"children":546},{"className":545},[],[547],{"type":49,"value":548},"build",{"type":49,"value":550}," commands, pass build-plan variables\nthrough ",{"type":44,"tag":103,"props":552,"children":554},{"className":553},[],[555],{"type":49,"value":556},"--env",{"type":49,"value":558},". The CLI does not automatically import arbitrary exported\nvariables:",{"type":44,"tag":183,"props":560,"children":562},{"className":185,"code":561,"language":187,"meta":188,"style":188},"railpack plan \\\n  --env 'RAILPACK_PACKAGES=node@22 jq@latest' \\\n  --env 'RAILPACK_START_CMD=node dist\u002Fserver.js' \\\n  .\n\nexport RAILPACK_NODE_VERSION=22\nrailpack build --env RAILPACK_NODE_VERSION .\n",[563],{"type":44,"tag":103,"props":564,"children":565},{"__ignoreMap":188},[566,582,609,633,642,652,677],{"type":44,"tag":194,"props":567,"children":568},{"class":196,"line":197},[569,573,577],{"type":44,"tag":194,"props":570,"children":571},{"style":201},[572],{"type":49,"value":4},{"type":44,"tag":194,"props":574,"children":575},{"style":206},[576],{"type":49,"value":227},{"type":44,"tag":194,"props":578,"children":579},{"style":449},[580],{"type":49,"value":581}," \\\n",{"type":44,"tag":194,"props":583,"children":584},{"class":196,"line":217},[585,590,595,600,605],{"type":44,"tag":194,"props":586,"children":587},{"style":206},[588],{"type":49,"value":589},"  --env",{"type":44,"tag":194,"props":591,"children":592},{"style":454},[593],{"type":49,"value":594}," '",{"type":44,"tag":194,"props":596,"children":597},{"style":206},[598],{"type":49,"value":599},"RAILPACK_PACKAGES=node@22 jq@latest",{"type":44,"tag":194,"props":601,"children":602},{"style":454},[603],{"type":49,"value":604},"'",{"type":44,"tag":194,"props":606,"children":607},{"style":449},[608],{"type":49,"value":581},{"type":44,"tag":194,"props":610,"children":611},{"class":196,"line":499},[612,616,620,625,629],{"type":44,"tag":194,"props":613,"children":614},{"style":206},[615],{"type":49,"value":589},{"type":44,"tag":194,"props":617,"children":618},{"style":454},[619],{"type":49,"value":594},{"type":44,"tag":194,"props":621,"children":622},{"style":206},[623],{"type":49,"value":624},"RAILPACK_START_CMD=node dist\u002Fserver.js",{"type":44,"tag":194,"props":626,"children":627},{"style":454},[628],{"type":49,"value":604},{"type":44,"tag":194,"props":630,"children":631},{"style":449},[632],{"type":49,"value":581},{"type":44,"tag":194,"props":634,"children":636},{"class":196,"line":635},4,[637],{"type":44,"tag":194,"props":638,"children":639},{"style":206},[640],{"type":49,"value":641},"  .\n",{"type":44,"tag":194,"props":643,"children":645},{"class":196,"line":644},5,[646],{"type":44,"tag":194,"props":647,"children":649},{"emptyLinePlaceholder":648},true,[650],{"type":49,"value":651},"\n",{"type":44,"tag":194,"props":653,"children":655},{"class":196,"line":654},6,[656,662,667,671],{"type":44,"tag":194,"props":657,"children":659},{"style":658},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[660],{"type":49,"value":661},"export",{"type":44,"tag":194,"props":663,"children":664},{"style":449},[665],{"type":49,"value":666}," RAILPACK_NODE_VERSION",{"type":44,"tag":194,"props":668,"children":669},{"style":454},[670],{"type":49,"value":457},{"type":44,"tag":194,"props":672,"children":674},{"style":673},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[675],{"type":49,"value":676},"22\n",{"type":44,"tag":194,"props":678,"children":680},{"class":196,"line":679},7,[681,685,690,695,699],{"type":44,"tag":194,"props":682,"children":683},{"style":201},[684],{"type":49,"value":4},{"type":44,"tag":194,"props":686,"children":687},{"style":206},[688],{"type":49,"value":689}," build",{"type":44,"tag":194,"props":691,"children":692},{"style":206},[693],{"type":49,"value":694}," --env",{"type":44,"tag":194,"props":696,"children":697},{"style":206},[698],{"type":49,"value":666},{"type":44,"tag":194,"props":700,"children":701},{"style":206},[702],{"type":49,"value":214},{"type":44,"tag":52,"props":704,"children":705},{},[706,708,714,716,721],{"type":49,"value":707},"Prefer name-only ",{"type":44,"tag":103,"props":709,"children":711},{"className":710},[],[712],{"type":49,"value":713},"--env SECRET_NAME",{"type":49,"value":715}," after exporting a secret so its value is\nnot placed in the command arguments. Treat values supplied through ",{"type":44,"tag":103,"props":717,"children":719},{"className":718},[],[720],{"type":49,"value":556},{"type":49,"value":722}," as\nbuild-time secrets, not runtime configuration.",{"type":44,"tag":52,"props":724,"children":725},{},[726,728,734,736,742,744,749],{"type":49,"value":727},"Set non-secret build-step values in ",{"type":44,"tag":103,"props":729,"children":731},{"className":730},[],[732],{"type":49,"value":733},"steps.\u003Cname>.variables",{"type":49,"value":735},". Set values that\nmust be baked into the final image in ",{"type":44,"tag":103,"props":737,"children":739},{"className":738},[],[740],{"type":49,"value":741},"deploy.variables",{"type":49,"value":743},"; prefer the hosting\nplatform's runtime environment for environment-specific values. Never put\nsecret values in ",{"type":44,"tag":103,"props":745,"children":747},{"className":746},[],[748],{"type":49,"value":121},{"type":49,"value":110},{"type":44,"tag":52,"props":751,"children":752},{},[753,755,761,763,769,771,777,779,785],{"type":49,"value":754},"Treat ",{"type":44,"tag":103,"props":756,"children":758},{"className":757},[],[759],{"type":49,"value":760},"RAILPACK_VERBOSE",{"type":49,"value":762}," separately: it is a process-level CLI option. Use\n",{"type":44,"tag":103,"props":764,"children":766},{"className":765},[],[767],{"type":49,"value":768},"RAILPACK_VERBOSE=1 railpack build ...",{"type":49,"value":770}," or ",{"type":44,"tag":103,"props":772,"children":774},{"className":773},[],[775],{"type":49,"value":776},"railpack --verbose build ...",{"type":49,"value":778},", not\n",{"type":44,"tag":103,"props":780,"children":782},{"className":781},[],[783],{"type":49,"value":784},"--env RAILPACK_VERBOSE=1",{"type":49,"value":110},{"type":44,"tag":58,"props":787,"children":789},{"id":788},"construct-railpackjson-as-an-overlay",[790,792,797],{"type":49,"value":791},"Construct ",{"type":44,"tag":103,"props":793,"children":795},{"className":794},[],[796],{"type":49,"value":121},{"type":49,"value":798}," as an overlay",{"type":44,"tag":52,"props":800,"children":801},{},[802,804,809,811,817,819,824,826,831],{"type":49,"value":803},"Place ",{"type":44,"tag":103,"props":805,"children":807},{"className":806},[],[808],{"type":49,"value":121},{"type":49,"value":810}," at the build-context root. For another project-relative\npath, prefer ",{"type":44,"tag":103,"props":812,"children":814},{"className":813},[],[815],{"type":49,"value":816},"--config-file path\u002Fto\u002Fconfig.json",{"type":49,"value":818},"; when using\n",{"type":44,"tag":103,"props":820,"children":822},{"className":821},[],[823],{"type":49,"value":363},{"type":49,"value":825}," with the local CLI, pass it through ",{"type":44,"tag":103,"props":827,"children":829},{"className":828},[],[830],{"type":49,"value":556},{"type":49,"value":110},{"type":44,"tag":52,"props":833,"children":834},{},[835],{"type":49,"value":836},"Always include the schema:",{"type":44,"tag":183,"props":838,"children":842},{"className":839,"code":840,"language":841,"meta":188,"style":188},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"$schema\": \"https:\u002F\u002Fschema.railpack.com\"\n}\n","json",[843],{"type":44,"tag":103,"props":844,"children":845},{"__ignoreMap":188},[846,854,890],{"type":44,"tag":194,"props":847,"children":848},{"class":196,"line":197},[849],{"type":44,"tag":194,"props":850,"children":851},{"style":454},[852],{"type":49,"value":853},"{\n",{"type":44,"tag":194,"props":855,"children":856},{"class":196,"line":217},[857,862,867,871,876,881,886],{"type":44,"tag":194,"props":858,"children":859},{"style":454},[860],{"type":49,"value":861},"  \"",{"type":44,"tag":194,"props":863,"children":864},{"style":658},[865],{"type":49,"value":866},"$schema",{"type":44,"tag":194,"props":868,"children":869},{"style":454},[870],{"type":49,"value":462},{"type":44,"tag":194,"props":872,"children":873},{"style":454},[874],{"type":49,"value":875},":",{"type":44,"tag":194,"props":877,"children":878},{"style":454},[879],{"type":49,"value":880}," \"",{"type":44,"tag":194,"props":882,"children":883},{"style":206},[884],{"type":49,"value":885},"https:\u002F\u002Fschema.railpack.com",{"type":44,"tag":194,"props":887,"children":888},{"style":454},[889],{"type":49,"value":472},{"type":44,"tag":194,"props":891,"children":892},{"class":196,"line":499},[893],{"type":44,"tag":194,"props":894,"children":895},{"style":454},[896],{"type":49,"value":897},"}\n",{"type":44,"tag":52,"props":899,"children":900},{},[901,903,908],{"type":49,"value":902},"Write the smallest overlay on the provider-generated plan. Do not copy the\nentire generated plan into the config file. Use ",{"type":44,"tag":103,"props":904,"children":906},{"className":905},[],[907],{"type":49,"value":421},{"type":49,"value":909}," at the desired position\nin a configurable array to retain generated values; omitting it replaces that\narray.",{"type":44,"tag":183,"props":911,"children":913},{"className":839,"code":912,"language":841,"meta":188,"style":188},"{\n  \"$schema\": \"https:\u002F\u002Fschema.railpack.com\",\n  \"packages\": {\n    \"node\": \"22\"\n  },\n  \"buildAptPackages\": [\"...\", \"build-essential\"],\n  \"steps\": {\n    \"build\": {\n      \"commands\": [\"...\", \"npm run postbuild\"]\n    }\n  },\n  \"deploy\": {\n    \"aptPackages\": [\"...\", \"ffmpeg\"],\n    \"startCommand\": \"node dist\u002Fserver.js\"\n  }\n}\n",[914],{"type":44,"tag":103,"props":915,"children":916},{"__ignoreMap":188},[917,924,960,985,1019,1027,1087,1111,1135,1195,1204,1212,1237,1295,1329,1338],{"type":44,"tag":194,"props":918,"children":919},{"class":196,"line":197},[920],{"type":44,"tag":194,"props":921,"children":922},{"style":454},[923],{"type":49,"value":853},{"type":44,"tag":194,"props":925,"children":926},{"class":196,"line":217},[927,931,935,939,943,947,951,955],{"type":44,"tag":194,"props":928,"children":929},{"style":454},[930],{"type":49,"value":861},{"type":44,"tag":194,"props":932,"children":933},{"style":658},[934],{"type":49,"value":866},{"type":44,"tag":194,"props":936,"children":937},{"style":454},[938],{"type":49,"value":462},{"type":44,"tag":194,"props":940,"children":941},{"style":454},[942],{"type":49,"value":875},{"type":44,"tag":194,"props":944,"children":945},{"style":454},[946],{"type":49,"value":880},{"type":44,"tag":194,"props":948,"children":949},{"style":206},[950],{"type":49,"value":885},{"type":44,"tag":194,"props":952,"children":953},{"style":454},[954],{"type":49,"value":462},{"type":44,"tag":194,"props":956,"children":957},{"style":454},[958],{"type":49,"value":959},",\n",{"type":44,"tag":194,"props":961,"children":962},{"class":196,"line":499},[963,967,972,976,980],{"type":44,"tag":194,"props":964,"children":965},{"style":454},[966],{"type":49,"value":861},{"type":44,"tag":194,"props":968,"children":969},{"style":658},[970],{"type":49,"value":971},"packages",{"type":44,"tag":194,"props":973,"children":974},{"style":454},[975],{"type":49,"value":462},{"type":44,"tag":194,"props":977,"children":978},{"style":454},[979],{"type":49,"value":875},{"type":44,"tag":194,"props":981,"children":982},{"style":454},[983],{"type":49,"value":984}," {\n",{"type":44,"tag":194,"props":986,"children":987},{"class":196,"line":635},[988,993,998,1002,1006,1010,1015],{"type":44,"tag":194,"props":989,"children":990},{"style":454},[991],{"type":49,"value":992},"    \"",{"type":44,"tag":194,"props":994,"children":995},{"style":201},[996],{"type":49,"value":997},"node",{"type":44,"tag":194,"props":999,"children":1000},{"style":454},[1001],{"type":49,"value":462},{"type":44,"tag":194,"props":1003,"children":1004},{"style":454},[1005],{"type":49,"value":875},{"type":44,"tag":194,"props":1007,"children":1008},{"style":454},[1009],{"type":49,"value":880},{"type":44,"tag":194,"props":1011,"children":1012},{"style":206},[1013],{"type":49,"value":1014},"22",{"type":44,"tag":194,"props":1016,"children":1017},{"style":454},[1018],{"type":49,"value":472},{"type":44,"tag":194,"props":1020,"children":1021},{"class":196,"line":644},[1022],{"type":44,"tag":194,"props":1023,"children":1024},{"style":454},[1025],{"type":49,"value":1026},"  },\n",{"type":44,"tag":194,"props":1028,"children":1029},{"class":196,"line":654},[1030,1034,1039,1043,1047,1052,1056,1060,1064,1069,1073,1078,1082],{"type":44,"tag":194,"props":1031,"children":1032},{"style":454},[1033],{"type":49,"value":861},{"type":44,"tag":194,"props":1035,"children":1036},{"style":658},[1037],{"type":49,"value":1038},"buildAptPackages",{"type":44,"tag":194,"props":1040,"children":1041},{"style":454},[1042],{"type":49,"value":462},{"type":44,"tag":194,"props":1044,"children":1045},{"style":454},[1046],{"type":49,"value":875},{"type":44,"tag":194,"props":1048,"children":1049},{"style":454},[1050],{"type":49,"value":1051}," [",{"type":44,"tag":194,"props":1053,"children":1054},{"style":454},[1055],{"type":49,"value":462},{"type":44,"tag":194,"props":1057,"children":1058},{"style":206},[1059],{"type":49,"value":434},{"type":44,"tag":194,"props":1061,"children":1062},{"style":454},[1063],{"type":49,"value":462},{"type":44,"tag":194,"props":1065,"children":1066},{"style":454},[1067],{"type":49,"value":1068},",",{"type":44,"tag":194,"props":1070,"children":1071},{"style":454},[1072],{"type":49,"value":880},{"type":44,"tag":194,"props":1074,"children":1075},{"style":206},[1076],{"type":49,"value":1077},"build-essential",{"type":44,"tag":194,"props":1079,"children":1080},{"style":454},[1081],{"type":49,"value":462},{"type":44,"tag":194,"props":1083,"children":1084},{"style":454},[1085],{"type":49,"value":1086},"],\n",{"type":44,"tag":194,"props":1088,"children":1089},{"class":196,"line":679},[1090,1094,1099,1103,1107],{"type":44,"tag":194,"props":1091,"children":1092},{"style":454},[1093],{"type":49,"value":861},{"type":44,"tag":194,"props":1095,"children":1096},{"style":658},[1097],{"type":49,"value":1098},"steps",{"type":44,"tag":194,"props":1100,"children":1101},{"style":454},[1102],{"type":49,"value":462},{"type":44,"tag":194,"props":1104,"children":1105},{"style":454},[1106],{"type":49,"value":875},{"type":44,"tag":194,"props":1108,"children":1109},{"style":454},[1110],{"type":49,"value":984},{"type":44,"tag":194,"props":1112,"children":1114},{"class":196,"line":1113},8,[1115,1119,1123,1127,1131],{"type":44,"tag":194,"props":1116,"children":1117},{"style":454},[1118],{"type":49,"value":992},{"type":44,"tag":194,"props":1120,"children":1121},{"style":201},[1122],{"type":49,"value":548},{"type":44,"tag":194,"props":1124,"children":1125},{"style":454},[1126],{"type":49,"value":462},{"type":44,"tag":194,"props":1128,"children":1129},{"style":454},[1130],{"type":49,"value":875},{"type":44,"tag":194,"props":1132,"children":1133},{"style":454},[1134],{"type":49,"value":984},{"type":44,"tag":194,"props":1136,"children":1138},{"class":196,"line":1137},9,[1139,1144,1149,1153,1157,1161,1165,1169,1173,1177,1181,1186,1190],{"type":44,"tag":194,"props":1140,"children":1141},{"style":454},[1142],{"type":49,"value":1143},"      \"",{"type":44,"tag":194,"props":1145,"children":1146},{"style":673},[1147],{"type":49,"value":1148},"commands",{"type":44,"tag":194,"props":1150,"children":1151},{"style":454},[1152],{"type":49,"value":462},{"type":44,"tag":194,"props":1154,"children":1155},{"style":454},[1156],{"type":49,"value":875},{"type":44,"tag":194,"props":1158,"children":1159},{"style":454},[1160],{"type":49,"value":1051},{"type":44,"tag":194,"props":1162,"children":1163},{"style":454},[1164],{"type":49,"value":462},{"type":44,"tag":194,"props":1166,"children":1167},{"style":206},[1168],{"type":49,"value":434},{"type":44,"tag":194,"props":1170,"children":1171},{"style":454},[1172],{"type":49,"value":462},{"type":44,"tag":194,"props":1174,"children":1175},{"style":454},[1176],{"type":49,"value":1068},{"type":44,"tag":194,"props":1178,"children":1179},{"style":454},[1180],{"type":49,"value":880},{"type":44,"tag":194,"props":1182,"children":1183},{"style":206},[1184],{"type":49,"value":1185},"npm run postbuild",{"type":44,"tag":194,"props":1187,"children":1188},{"style":454},[1189],{"type":49,"value":462},{"type":44,"tag":194,"props":1191,"children":1192},{"style":454},[1193],{"type":49,"value":1194},"]\n",{"type":44,"tag":194,"props":1196,"children":1198},{"class":196,"line":1197},10,[1199],{"type":44,"tag":194,"props":1200,"children":1201},{"style":454},[1202],{"type":49,"value":1203},"    }\n",{"type":44,"tag":194,"props":1205,"children":1207},{"class":196,"line":1206},11,[1208],{"type":44,"tag":194,"props":1209,"children":1210},{"style":454},[1211],{"type":49,"value":1026},{"type":44,"tag":194,"props":1213,"children":1215},{"class":196,"line":1214},12,[1216,1220,1225,1229,1233],{"type":44,"tag":194,"props":1217,"children":1218},{"style":454},[1219],{"type":49,"value":861},{"type":44,"tag":194,"props":1221,"children":1222},{"style":658},[1223],{"type":49,"value":1224},"deploy",{"type":44,"tag":194,"props":1226,"children":1227},{"style":454},[1228],{"type":49,"value":462},{"type":44,"tag":194,"props":1230,"children":1231},{"style":454},[1232],{"type":49,"value":875},{"type":44,"tag":194,"props":1234,"children":1235},{"style":454},[1236],{"type":49,"value":984},{"type":44,"tag":194,"props":1238,"children":1240},{"class":196,"line":1239},13,[1241,1245,1250,1254,1258,1262,1266,1270,1274,1278,1282,1287,1291],{"type":44,"tag":194,"props":1242,"children":1243},{"style":454},[1244],{"type":49,"value":992},{"type":44,"tag":194,"props":1246,"children":1247},{"style":201},[1248],{"type":49,"value":1249},"aptPackages",{"type":44,"tag":194,"props":1251,"children":1252},{"style":454},[1253],{"type":49,"value":462},{"type":44,"tag":194,"props":1255,"children":1256},{"style":454},[1257],{"type":49,"value":875},{"type":44,"tag":194,"props":1259,"children":1260},{"style":454},[1261],{"type":49,"value":1051},{"type":44,"tag":194,"props":1263,"children":1264},{"style":454},[1265],{"type":49,"value":462},{"type":44,"tag":194,"props":1267,"children":1268},{"style":206},[1269],{"type":49,"value":434},{"type":44,"tag":194,"props":1271,"children":1272},{"style":454},[1273],{"type":49,"value":462},{"type":44,"tag":194,"props":1275,"children":1276},{"style":454},[1277],{"type":49,"value":1068},{"type":44,"tag":194,"props":1279,"children":1280},{"style":454},[1281],{"type":49,"value":880},{"type":44,"tag":194,"props":1283,"children":1284},{"style":206},[1285],{"type":49,"value":1286},"ffmpeg",{"type":44,"tag":194,"props":1288,"children":1289},{"style":454},[1290],{"type":49,"value":462},{"type":44,"tag":194,"props":1292,"children":1293},{"style":454},[1294],{"type":49,"value":1086},{"type":44,"tag":194,"props":1296,"children":1298},{"class":196,"line":1297},14,[1299,1303,1308,1312,1316,1320,1325],{"type":44,"tag":194,"props":1300,"children":1301},{"style":454},[1302],{"type":49,"value":992},{"type":44,"tag":194,"props":1304,"children":1305},{"style":201},[1306],{"type":49,"value":1307},"startCommand",{"type":44,"tag":194,"props":1309,"children":1310},{"style":454},[1311],{"type":49,"value":462},{"type":44,"tag":194,"props":1313,"children":1314},{"style":454},[1315],{"type":49,"value":875},{"type":44,"tag":194,"props":1317,"children":1318},{"style":454},[1319],{"type":49,"value":880},{"type":44,"tag":194,"props":1321,"children":1322},{"style":206},[1323],{"type":49,"value":1324},"node dist\u002Fserver.js",{"type":44,"tag":194,"props":1326,"children":1327},{"style":454},[1328],{"type":49,"value":472},{"type":44,"tag":194,"props":1330,"children":1332},{"class":196,"line":1331},15,[1333],{"type":44,"tag":194,"props":1334,"children":1335},{"style":454},[1336],{"type":49,"value":1337},"  }\n",{"type":44,"tag":194,"props":1339,"children":1341},{"class":196,"line":1340},16,[1342],{"type":44,"tag":194,"props":1343,"children":1344},{"style":454},[1345],{"type":49,"value":897},{"type":44,"tag":52,"props":1347,"children":1348},{},[1349],{"type":49,"value":1350},"Use the documented model:",{"type":44,"tag":93,"props":1352,"children":1353},{},[1354,1367,1378,1390,1402,1413],{"type":44,"tag":97,"props":1355,"children":1356},{},[1357,1359,1365],{"type":49,"value":1358},"Set ",{"type":44,"tag":103,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":49,"value":1364},"provider",{"type":49,"value":1366}," only to override failed or ambiguous autodetection.",{"type":44,"tag":97,"props":1368,"children":1369},{},[1370,1371,1376],{"type":49,"value":1358},{"type":44,"tag":103,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":49,"value":971},{"type":49,"value":1377}," for Mise-managed tools and versions.",{"type":44,"tag":97,"props":1379,"children":1380},{},[1381,1383,1388],{"type":49,"value":1382},"Set root ",{"type":44,"tag":103,"props":1384,"children":1386},{"className":1385},[],[1387],{"type":49,"value":1038},{"type":49,"value":1389}," for build-only Apt packages.",{"type":44,"tag":97,"props":1391,"children":1392},{},[1393,1394,1400],{"type":49,"value":1358},{"type":44,"tag":103,"props":1395,"children":1397},{"className":1396},[],[1398],{"type":49,"value":1399},"steps.\u003Cname>",{"type":49,"value":1401}," for inputs, commands, caches, variables, assets, secrets,\nand deploy outputs.",{"type":44,"tag":97,"props":1403,"children":1404},{},[1405,1406,1411],{"type":49,"value":1358},{"type":44,"tag":103,"props":1407,"children":1409},{"className":1408},[],[1410],{"type":49,"value":1224},{"type":49,"value":1412}," for runtime base, inputs, Apt packages, paths, variables, and\nstart command.",{"type":44,"tag":97,"props":1414,"children":1415},{},[1416,1418,1424,1425,1431],{"type":49,"value":1417},"Filter layer inputs with ",{"type":44,"tag":103,"props":1419,"children":1421},{"className":1420},[],[1422],{"type":49,"value":1423},"include",{"type":49,"value":386},{"type":44,"tag":103,"props":1426,"children":1428},{"className":1427},[],[1429],{"type":49,"value":1430},"exclude",{"type":49,"value":1432}," when only selected artifacts\nshould enter another step or the runtime image.",{"type":44,"tag":52,"props":1434,"children":1435},{},[1436,1438,1443],{"type":49,"value":1437},"Validate names and shapes against ",{"type":44,"tag":70,"props":1439,"children":1441},{"href":885,"rel":1440},[74],[1442],{"type":49,"value":885},{"type":49,"value":1444},". Use plan\ngeneration as the semantic validation:",{"type":44,"tag":183,"props":1446,"children":1448},{"className":185,"code":1447,"language":187,"meta":188,"style":188},"railpack plan --out tmp\u002Frailpack-plan.json .\nrailpack info --format json --out tmp\u002Frailpack-info.json .\n",[1449],{"type":44,"tag":103,"props":1450,"children":1451},{"__ignoreMap":188},[1452,1477],{"type":44,"tag":194,"props":1453,"children":1454},{"class":196,"line":197},[1455,1459,1463,1468,1473],{"type":44,"tag":194,"props":1456,"children":1457},{"style":201},[1458],{"type":49,"value":4},{"type":44,"tag":194,"props":1460,"children":1461},{"style":206},[1462],{"type":49,"value":227},{"type":44,"tag":194,"props":1464,"children":1465},{"style":206},[1466],{"type":49,"value":1467}," --out",{"type":44,"tag":194,"props":1469,"children":1470},{"style":206},[1471],{"type":49,"value":1472}," tmp\u002Frailpack-plan.json",{"type":44,"tag":194,"props":1474,"children":1475},{"style":206},[1476],{"type":49,"value":214},{"type":44,"tag":194,"props":1478,"children":1479},{"class":196,"line":217},[1480,1484,1488,1493,1498,1502,1507],{"type":44,"tag":194,"props":1481,"children":1482},{"style":201},[1483],{"type":49,"value":4},{"type":44,"tag":194,"props":1485,"children":1486},{"style":206},[1487],{"type":49,"value":209},{"type":44,"tag":194,"props":1489,"children":1490},{"style":206},[1491],{"type":49,"value":1492}," --format",{"type":44,"tag":194,"props":1494,"children":1495},{"style":206},[1496],{"type":49,"value":1497}," json",{"type":44,"tag":194,"props":1499,"children":1500},{"style":206},[1501],{"type":49,"value":1467},{"type":44,"tag":194,"props":1503,"children":1504},{"style":206},[1505],{"type":49,"value":1506}," tmp\u002Frailpack-info.json",{"type":44,"tag":194,"props":1508,"children":1509},{"style":206},[1510],{"type":49,"value":214},{"type":44,"tag":52,"props":1512,"children":1513},{},[1514,1516,1521],{"type":49,"value":1515},"Inspect the generated output for accidental replacement of commands, Apt\npackages, inputs, paths, caches, or secrets. Keep generated plan files separate\nfrom the source ",{"type":44,"tag":103,"props":1517,"children":1519},{"className":1518},[],[1520],{"type":49,"value":121},{"type":49,"value":1522}," overlay.",{"type":44,"tag":58,"props":1524,"children":1526},{"id":1525},"install-and-run-locally",[1527],{"type":49,"value":1528},"Install and run locally",{"type":44,"tag":52,"props":1530,"children":1531},{},[1532],{"type":49,"value":1533},"Check for an existing binary first:",{"type":44,"tag":183,"props":1535,"children":1537},{"className":185,"code":1536,"language":187,"meta":188,"style":188},"command -v railpack\nrailpack --version\nrailpack --help\n",[1538],{"type":44,"tag":103,"props":1539,"children":1540},{"__ignoreMap":188},[1541,1560,1572],{"type":44,"tag":194,"props":1542,"children":1543},{"class":196,"line":197},[1544,1550,1555],{"type":44,"tag":194,"props":1545,"children":1547},{"style":1546},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1548],{"type":49,"value":1549},"command",{"type":44,"tag":194,"props":1551,"children":1552},{"style":206},[1553],{"type":49,"value":1554}," -v",{"type":44,"tag":194,"props":1556,"children":1557},{"style":206},[1558],{"type":49,"value":1559}," railpack\n",{"type":44,"tag":194,"props":1561,"children":1562},{"class":196,"line":217},[1563,1567],{"type":44,"tag":194,"props":1564,"children":1565},{"style":201},[1566],{"type":49,"value":4},{"type":44,"tag":194,"props":1568,"children":1569},{"style":206},[1570],{"type":49,"value":1571}," --version\n",{"type":44,"tag":194,"props":1573,"children":1574},{"class":196,"line":499},[1575,1579],{"type":44,"tag":194,"props":1576,"children":1577},{"style":201},[1578],{"type":49,"value":4},{"type":44,"tag":194,"props":1580,"children":1581},{"style":206},[1582],{"type":49,"value":1583}," --help\n",{"type":44,"tag":52,"props":1585,"children":1586},{},[1587],{"type":49,"value":1588},"If installation is requested, choose a current documented method. With Mise:",{"type":44,"tag":183,"props":1590,"children":1592},{"className":185,"code":1591,"language":187,"meta":188,"style":188},"mise use github:railwayapp\u002Frailpack@latest\nrailpack --help\n",[1593],{"type":44,"tag":103,"props":1594,"children":1595},{"__ignoreMap":188},[1596,1614],{"type":44,"tag":194,"props":1597,"children":1598},{"class":196,"line":197},[1599,1604,1609],{"type":44,"tag":194,"props":1600,"children":1601},{"style":201},[1602],{"type":49,"value":1603},"mise",{"type":44,"tag":194,"props":1605,"children":1606},{"style":206},[1607],{"type":49,"value":1608}," use",{"type":44,"tag":194,"props":1610,"children":1611},{"style":206},[1612],{"type":49,"value":1613}," github:railwayapp\u002Frailpack@latest\n",{"type":44,"tag":194,"props":1615,"children":1616},{"class":196,"line":217},[1617,1621],{"type":44,"tag":194,"props":1618,"children":1619},{"style":201},[1620],{"type":49,"value":4},{"type":44,"tag":194,"props":1622,"children":1623},{"style":206},[1624],{"type":49,"value":1583},{"type":44,"tag":52,"props":1626,"children":1627},{},[1628],{"type":49,"value":1629},"Or use the official release installer:",{"type":44,"tag":183,"props":1631,"children":1633},{"className":185,"code":1632,"language":187,"meta":188,"style":188},"curl -sSL https:\u002F\u002Frailpack.com\u002Finstall.sh | sh\nrailpack --help\n",[1634],{"type":44,"tag":103,"props":1635,"children":1636},{"__ignoreMap":188},[1637,1665],{"type":44,"tag":194,"props":1638,"children":1639},{"class":196,"line":197},[1640,1645,1650,1655,1660],{"type":44,"tag":194,"props":1641,"children":1642},{"style":201},[1643],{"type":49,"value":1644},"curl",{"type":44,"tag":194,"props":1646,"children":1647},{"style":206},[1648],{"type":49,"value":1649}," -sSL",{"type":44,"tag":194,"props":1651,"children":1652},{"style":206},[1653],{"type":49,"value":1654}," https:\u002F\u002Frailpack.com\u002Finstall.sh",{"type":44,"tag":194,"props":1656,"children":1657},{"style":454},[1658],{"type":49,"value":1659}," |",{"type":44,"tag":194,"props":1661,"children":1662},{"style":201},[1663],{"type":49,"value":1664}," sh\n",{"type":44,"tag":194,"props":1666,"children":1667},{"class":196,"line":217},[1668,1672],{"type":44,"tag":194,"props":1669,"children":1670},{"style":201},[1671],{"type":49,"value":4},{"type":44,"tag":194,"props":1673,"children":1674},{"style":206},[1675],{"type":49,"value":1583},{"type":44,"tag":52,"props":1677,"children":1678},{},[1679],{"type":49,"value":1680},"Pin the Railpack version when reproducibility matters. Consult the Installation\npage for current version and destination controls instead of inventing flags.",{"type":44,"tag":52,"props":1682,"children":1683},{},[1684,1686,1691],{"type":49,"value":1685},"Inside the Railpack repository, follow its checked-in instructions and\n",{"type":44,"tag":103,"props":1687,"children":1689},{"className":1688},[],[1690],{"type":49,"value":144},{"type":49,"value":1692},". Prefer its development task over an installed release:",{"type":44,"tag":183,"props":1694,"children":1696},{"className":185,"code":1695,"language":187,"meta":188,"style":188},"mise install\nmise run setup\nmise run cli -- --help\n",[1697],{"type":44,"tag":103,"props":1698,"children":1699},{"__ignoreMap":188},[1700,1712,1729],{"type":44,"tag":194,"props":1701,"children":1702},{"class":196,"line":197},[1703,1707],{"type":44,"tag":194,"props":1704,"children":1705},{"style":201},[1706],{"type":49,"value":1603},{"type":44,"tag":194,"props":1708,"children":1709},{"style":206},[1710],{"type":49,"value":1711}," install\n",{"type":44,"tag":194,"props":1713,"children":1714},{"class":196,"line":217},[1715,1719,1724],{"type":44,"tag":194,"props":1716,"children":1717},{"style":201},[1718],{"type":49,"value":1603},{"type":44,"tag":194,"props":1720,"children":1721},{"style":206},[1722],{"type":49,"value":1723}," run",{"type":44,"tag":194,"props":1725,"children":1726},{"style":206},[1727],{"type":49,"value":1728}," setup\n",{"type":44,"tag":194,"props":1730,"children":1731},{"class":196,"line":499},[1732,1736,1740,1745,1750],{"type":44,"tag":194,"props":1733,"children":1734},{"style":201},[1735],{"type":49,"value":1603},{"type":44,"tag":194,"props":1737,"children":1738},{"style":206},[1739],{"type":49,"value":1723},{"type":44,"tag":194,"props":1741,"children":1742},{"style":206},[1743],{"type":49,"value":1744}," cli",{"type":44,"tag":194,"props":1746,"children":1747},{"style":206},[1748],{"type":49,"value":1749}," --",{"type":44,"tag":194,"props":1751,"children":1752},{"style":206},[1753],{"type":49,"value":1583},{"type":44,"tag":52,"props":1755,"children":1756},{},[1757,1758,1764,1765,1771,1773,1779,1781,1787],{"type":49,"value":408},{"type":44,"tag":103,"props":1759,"children":1761},{"className":1760},[],[1762],{"type":49,"value":1763},"railpack plan",{"type":49,"value":770},{"type":44,"tag":103,"props":1766,"children":1768},{"className":1767},[],[1769],{"type":49,"value":1770},"mise run cli -- plan",{"type":49,"value":1772}," without BuildKit. Use\n",{"type":44,"tag":103,"props":1774,"children":1776},{"className":1775},[],[1777],{"type":49,"value":1778},"railpack build",{"type":49,"value":1780}," for a normal local image build; reserve ",{"type":44,"tag":103,"props":1782,"children":1784},{"className":1783},[],[1785],{"type":49,"value":1786},"prepare",{"type":49,"value":1788}," and the\nBuildKit frontend workflow for platform integrations.",{"type":44,"tag":58,"props":1790,"children":1792},{"id":1791},"run-a-local-buildkit-container",[1793],{"type":49,"value":1794},"Run a local BuildKit container",{"type":44,"tag":52,"props":1796,"children":1797},{},[1798],{"type":49,"value":1799},"Require a working Docker engine with Linux containers. Starting a privileged\ncontainer changes local Docker state; do it only when a local build is within\nscope.",{"type":44,"tag":52,"props":1801,"children":1802},{},[1803,1805,1810,1812,1818],{"type":49,"value":1804},"Inspect any existing container named ",{"type":44,"tag":103,"props":1806,"children":1808},{"className":1807},[],[1809],{"type":49,"value":32},{"type":49,"value":1811}," before reusing the name. Reuse\nor start an appropriate existing daemon, or choose another name and use the same\nname in ",{"type":44,"tag":103,"props":1813,"children":1815},{"className":1814},[],[1816],{"type":49,"value":1817},"BUILDKIT_HOST",{"type":49,"value":1819},". Do not remove an unknown container to resolve a name\ncollision.",{"type":44,"tag":52,"props":1821,"children":1822},{},[1823],{"type":49,"value":1824},"For a disposable local daemon:",{"type":44,"tag":183,"props":1826,"children":1828},{"className":185,"code":1827,"language":187,"meta":188,"style":188},"docker run --rm --privileged --detach \\\n  --name buildkit \\\n  moby\u002Fbuildkit:latest\n\ndocker exec buildkit buildctl debug workers\n",[1829],{"type":44,"tag":103,"props":1830,"children":1831},{"__ignoreMap":188},[1832,1863,1880,1888,1895],{"type":44,"tag":194,"props":1833,"children":1834},{"class":196,"line":197},[1835,1840,1844,1849,1854,1859],{"type":44,"tag":194,"props":1836,"children":1837},{"style":201},[1838],{"type":49,"value":1839},"docker",{"type":44,"tag":194,"props":1841,"children":1842},{"style":206},[1843],{"type":49,"value":1723},{"type":44,"tag":194,"props":1845,"children":1846},{"style":206},[1847],{"type":49,"value":1848}," --rm",{"type":44,"tag":194,"props":1850,"children":1851},{"style":206},[1852],{"type":49,"value":1853}," --privileged",{"type":44,"tag":194,"props":1855,"children":1856},{"style":206},[1857],{"type":49,"value":1858}," --detach",{"type":44,"tag":194,"props":1860,"children":1861},{"style":449},[1862],{"type":49,"value":581},{"type":44,"tag":194,"props":1864,"children":1865},{"class":196,"line":217},[1866,1871,1876],{"type":44,"tag":194,"props":1867,"children":1868},{"style":206},[1869],{"type":49,"value":1870},"  --name",{"type":44,"tag":194,"props":1872,"children":1873},{"style":206},[1874],{"type":49,"value":1875}," buildkit",{"type":44,"tag":194,"props":1877,"children":1878},{"style":449},[1879],{"type":49,"value":581},{"type":44,"tag":194,"props":1881,"children":1882},{"class":196,"line":499},[1883],{"type":44,"tag":194,"props":1884,"children":1885},{"style":206},[1886],{"type":49,"value":1887},"  moby\u002Fbuildkit:latest\n",{"type":44,"tag":194,"props":1889,"children":1890},{"class":196,"line":635},[1891],{"type":44,"tag":194,"props":1892,"children":1893},{"emptyLinePlaceholder":648},[1894],{"type":49,"value":651},{"type":44,"tag":194,"props":1896,"children":1897},{"class":196,"line":644},[1898,1902,1907,1911,1916,1921],{"type":44,"tag":194,"props":1899,"children":1900},{"style":201},[1901],{"type":49,"value":1839},{"type":44,"tag":194,"props":1903,"children":1904},{"style":206},[1905],{"type":49,"value":1906}," exec",{"type":44,"tag":194,"props":1908,"children":1909},{"style":206},[1910],{"type":49,"value":1875},{"type":44,"tag":194,"props":1912,"children":1913},{"style":206},[1914],{"type":49,"value":1915}," buildctl",{"type":44,"tag":194,"props":1917,"children":1918},{"style":206},[1919],{"type":49,"value":1920}," debug",{"type":44,"tag":194,"props":1922,"children":1923},{"style":206},[1924],{"type":49,"value":1925}," workers\n",{"type":44,"tag":52,"props":1927,"children":1928},{},[1929,1931,1936],{"type":49,"value":1930},"Pass ",{"type":44,"tag":103,"props":1932,"children":1934},{"className":1933},[],[1935],{"type":49,"value":1817},{"type":49,"value":1937}," in the same shell invocation as the build. This also works\nwhen command executions do not share exported shell state:",{"type":44,"tag":183,"props":1939,"children":1941},{"className":185,"code":1940,"language":187,"meta":188,"style":188},"BUILDKIT_HOST='docker-container:\u002F\u002Fbuildkit' \\\n  railpack build \\\n    --name my-app \\\n    --show-plan \\\n    --progress plain \\\n    .\u002Fpath\u002Fto\u002Fproject\n",[1942],{"type":44,"tag":103,"props":1943,"children":1944},{"__ignoreMap":188},[1945,1973,1989,2006,2018,2035],{"type":44,"tag":194,"props":1946,"children":1947},{"class":196,"line":197},[1948,1952,1956,1960,1965,1969],{"type":44,"tag":194,"props":1949,"children":1950},{"style":449},[1951],{"type":49,"value":1817},{"type":44,"tag":194,"props":1953,"children":1954},{"style":454},[1955],{"type":49,"value":457},{"type":44,"tag":194,"props":1957,"children":1958},{"style":454},[1959],{"type":49,"value":604},{"type":44,"tag":194,"props":1961,"children":1962},{"style":206},[1963],{"type":49,"value":1964},"docker-container:\u002F\u002Fbuildkit",{"type":44,"tag":194,"props":1966,"children":1967},{"style":454},[1968],{"type":49,"value":604},{"type":44,"tag":194,"props":1970,"children":1971},{"style":201},[1972],{"type":49,"value":581},{"type":44,"tag":194,"props":1974,"children":1975},{"class":196,"line":217},[1976,1981,1985],{"type":44,"tag":194,"props":1977,"children":1978},{"style":206},[1979],{"type":49,"value":1980},"  railpack",{"type":44,"tag":194,"props":1982,"children":1983},{"style":206},[1984],{"type":49,"value":689},{"type":44,"tag":194,"props":1986,"children":1987},{"style":449},[1988],{"type":49,"value":581},{"type":44,"tag":194,"props":1990,"children":1991},{"class":196,"line":499},[1992,1997,2002],{"type":44,"tag":194,"props":1993,"children":1994},{"style":206},[1995],{"type":49,"value":1996},"    --name",{"type":44,"tag":194,"props":1998,"children":1999},{"style":206},[2000],{"type":49,"value":2001}," my-app",{"type":44,"tag":194,"props":2003,"children":2004},{"style":449},[2005],{"type":49,"value":581},{"type":44,"tag":194,"props":2007,"children":2008},{"class":196,"line":635},[2009,2014],{"type":44,"tag":194,"props":2010,"children":2011},{"style":206},[2012],{"type":49,"value":2013},"    --show-plan",{"type":44,"tag":194,"props":2015,"children":2016},{"style":449},[2017],{"type":49,"value":581},{"type":44,"tag":194,"props":2019,"children":2020},{"class":196,"line":644},[2021,2026,2031],{"type":44,"tag":194,"props":2022,"children":2023},{"style":206},[2024],{"type":49,"value":2025},"    --progress",{"type":44,"tag":194,"props":2027,"children":2028},{"style":206},[2029],{"type":49,"value":2030}," plain",{"type":44,"tag":194,"props":2032,"children":2033},{"style":449},[2034],{"type":49,"value":581},{"type":44,"tag":194,"props":2036,"children":2037},{"class":196,"line":654},[2038],{"type":44,"tag":194,"props":2039,"children":2040},{"style":206},[2041],{"type":49,"value":2042},"    .\u002Fpath\u002Fto\u002Fproject\n",{"type":44,"tag":52,"props":2044,"children":2045},{},[2046,2048,2054,2056,2061],{"type":49,"value":2047},"The URI's final component must match the container name. Pin the BuildKit image\nfor reproducible environments. If the source checkout provides\n",{"type":44,"tag":103,"props":2049,"children":2051},{"className":2050},[],[2052],{"type":49,"value":2053},"mise run setup",{"type":49,"value":2055},", prefer that task because it may mount repository-specific\nBuildKit configuration and set ",{"type":44,"tag":103,"props":2057,"children":2059},{"className":2058},[],[2060],{"type":49,"value":1817},{"type":49,"value":110},{"type":44,"tag":52,"props":2063,"children":2064},{},[2065,2066,2072,2074,2080,2082,2088],{"type":49,"value":408},{"type":44,"tag":103,"props":2067,"children":2069},{"className":2068},[],[2070],{"type":49,"value":2071},"docker logs buildkit",{"type":49,"value":2073}," for daemon or connection failures. Stop the container\nonly if it was created for the task; ",{"type":44,"tag":103,"props":2075,"children":2077},{"className":2076},[],[2078],{"type":49,"value":2079},"docker stop buildkit",{"type":49,"value":2081}," also removes this\ndisposable ",{"type":44,"tag":103,"props":2083,"children":2085},{"className":2084},[],[2086],{"type":49,"value":2087},"--rm",{"type":49,"value":2089}," container.",{"type":44,"tag":58,"props":2091,"children":2093},{"id":2092},"troubleshoot-in-order",[2094],{"type":49,"value":2095},"Troubleshoot in order",{"type":44,"tag":162,"props":2097,"children":2098},{},[2099,2104,2109,2121,2133,2145,2165],{"type":44,"tag":97,"props":2100,"children":2101},{},[2102],{"type":49,"value":2103},"Verify the installed or development CLI and relevant subcommand help.",{"type":44,"tag":97,"props":2105,"children":2106},{},[2107],{"type":49,"value":2108},"Generate a plan without BuildKit and resolve detection or config errors.",{"type":44,"tag":97,"props":2110,"children":2111},{},[2112,2114,2119],{"type":49,"value":2113},"Verify every ",{"type":44,"tag":103,"props":2115,"children":2117},{"className":2116},[],[2118],{"type":49,"value":108},{"type":49,"value":2120}," variable, its list format, and whether it replaces\ngenerated behavior.",{"type":44,"tag":97,"props":2122,"children":2123},{},[2124,2126,2131],{"type":49,"value":2125},"Verify every modified array retains ",{"type":44,"tag":103,"props":2127,"children":2129},{"className":2128},[],[2130],{"type":49,"value":421},{"type":49,"value":2132}," unless replacement is intended.",{"type":44,"tag":97,"props":2134,"children":2135},{},[2136,2138,2143],{"type":49,"value":2137},"Confirm Docker is reachable, the BuildKit worker is ready, and\n",{"type":44,"tag":103,"props":2139,"children":2141},{"className":2140},[],[2142],{"type":49,"value":1817},{"type":49,"value":2144}," names the correct container.",{"type":44,"tag":97,"props":2146,"children":2147},{},[2148,2150,2156,2157,2163],{"type":49,"value":2149},"Re-run with ",{"type":44,"tag":103,"props":2151,"children":2153},{"className":2152},[],[2154],{"type":49,"value":2155},"railpack --verbose build",{"type":49,"value":534},{"type":44,"tag":103,"props":2158,"children":2160},{"className":2159},[],[2161],{"type":49,"value":2162},"--show-plan",{"type":49,"value":2164},", and plain progress.",{"type":44,"tag":97,"props":2166,"children":2167},{},[2168],{"type":49,"value":2169},"Inspect BuildKit logs and Docker credentials for private images.",{"type":44,"tag":52,"props":2171,"children":2172},{},[2173],{"type":49,"value":2174},"Identify the failing layer before broadening configuration. Explain the cause\nand keep the fix targeted.",{"type":44,"tag":2176,"props":2177,"children":2178},"style",{},[2179],{"type":49,"value":2180},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2182,"total":217},[2183,2190],{"slug":4,"name":4,"fn":5,"description":6,"org":2184,"tags":2185,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2186,2187,2188,2189],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":24,"slug":25,"type":16},{"slug":2191,"name":2191,"fn":2192,"description":2193,"org":2194,"tags":2195,"stars":2203,"repoUrl":2204,"updatedAt":2205},"use-railway","operate Railway infrastructure","Operate Railway infrastructure: sign up for or sign in to a Railway account, create projects, provision services and databases, manage object storage buckets, deploy code, configure infrastructure as code, environments and variables, manage domains, troubleshoot failures, check status and metrics, manage feature flags, set up Railway agent tooling, and query Railway docs. Use this skill whenever the user mentions Railway, feature flags, flag rollout, targeting rules, signing up, creating an account, registering, logging in, deployments, services, environments, buckets, object storage, build failures, agent setup, MCP, or infrastructure operations, even if they don't say \"Railway\" explicitly. Also invoke this skill when the user asks to be signed up, registered, or onboarded to Railway: do not refuse — drive them through the unauthed `railway up` flow (deploys + signs up on the fly) or `railway login` (which creates new accounts on the fly).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2196,2199,2200],{"name":2197,"slug":2198,"type":16},"Cloud","cloud",{"name":21,"slug":22,"type":16},{"name":2201,"slug":2202,"type":16},"Infrastructure","infrastructure",293,"https:\u002F\u002Fgithub.com\u002Frailwayapp\u002Frailway-skills","2026-07-23T05:43:58.502639",{"items":2207,"total":197},[2208],{"slug":4,"name":4,"fn":5,"description":6,"org":2209,"tags":2210,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2211,2212,2213,2214],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":24,"slug":25,"type":16}]