Projects without a .dockerignore or configured excludes now omit node_modules (Node, Deno) and venv/.venv (Python) from the build context by default. The Gemfile.lock RUBY VERSION fallback for Ruby is deprecated with a warning, so projects relying on it alone should pin Ruby via .ruby-version, mise.toml, or the Gemfile.
Railpack
npx @buildinternet/releases get railpackZig applications are now detected via build.zig, compiled with zig build --release=safe, and run from zig-out/bin, with the binary name taken from build.zig.zon. Turborepo builds reuse turbo's local task cache through the framework cache, and Node projects no longer fail with Could not find turbo.json or ship missing node_modules under Yarn Berry's pnpm linker.
PHP provider now detects Symfony apps automatically via composer.json's symfony/framework-bundle requirement, applying the public/ document root, production defaults (APP_ENV=prod, APP_DEBUG=0), and a startup script that runs Doctrine migrations and warms the production cache; RAILPACK_SKIP_MIGRATIONS=true skips migrations. The bundled mise upgrade to v2026.10.8 defaults unprefixed Java versions to Temurin, GPG-verifies all Node downloads, requires trust for inline mise.toml tool options, and writes lockfile revision 3 that older mise versions reject.
Fixed railpack.json string shorthand commands such as COPY:src dest and PATH:/bin failing at runtime with a command-not-found error. Updated mise to v2026.9.15, bringing pinned pnpm version overrides, stable lockfiles, GitHub rate limit relief via the mise-versions mirror, and optional verified GitHub attestations for installs.
Mise was updated from v2026.8.16 to v2026.9.12, bringing lockfile revision 2 with dependency sidecars and early failure on locked platform URL version mismatches. Fixed Bun projects now default BUN_INSTALL_GLOBAL_STORE=0 to prevent broken symlinks across container layers, PHP apt package lists now expand spread operators instead of passing them literally, and planner file discovery now respects excluded files from .dockerignore and railpack.json.
Node apps using Nitro with TanStack Start no longer crash when no start script is present. Railpack now also warns when @tanstack/react-start is declared in the wrong dependency section.
pnpm is now provisioned directly via Mise instead of Corepack, and devEngines.packageManager in package.json takes precedence over engines, .nvmrc, and lockfiles for Node.js and pnpm resolution. Mise upgrades (v2026.8.11→v2026.8.13) fix GitHub install rate limits, UTF-8 BOM parsing in version files, monorepo lockfile tracking, and Go GOROOT isolation.
RAILPACK_DISABLE_CACHES is no longer read from the host process environment and must be passed via --env, applied during build plan generation for deterministic cache mount stripping. Deduplicates inherited PATH entries when merging build and deploy environments. Includes mise upgrades to v2026.8.11 with Ruby-on-musl fallback, npm deprecated-version filtering, glibc asset preference, and Erlang checksum verification.
New builds now use Debian 13 (Trixie) base images for builder and runtime, and native gem and extension compilation uses GCC 14 with incompatible-pointer-type errors enabled. The builder image also includes libicu-dev for .NET restore and native gem compilation, with a warning during build planning when custom Apt packages are detected. The bundled mise upgrade adds resumable downloads, precompiled PyPy, Node source patching, and Rust nightly toolchain resolution.
Railpack now exits with code 75 for transient failures, distinguishing them from permanent errors. Also includes a mise dependency update.
Reverted the recent change that supported multiline environment values and inheritance, and now drops empty environment entries instead of keeping explicit empty values.
Adds the RAILPACK_BUILT_AT runtime variable and a show-plan flag to the info command. Fixes multiline environment value support and inheritance, and enables safe mode when reading app config.
Node defaults to the lts version instead of a fixed major, and non-semver aliases resolve correctly through mise — pin a version with RAILPACK_NODE_VERSION or a version file. TanStack Start apps are detected and no longer treated as static Vite SPAs, .dockerignore patterns apply to local build context, rust-toolchain.toml and global.json are honored, npm projects are auto-detected, and fixed several CLI/config issues.
Playwright browser installation for Node and Python is now opt-in, preventing unexpected image-size increases. Set RAILPACK_NODE_PLAYWRIGHT_INSTALL=1 or RAILPACK_PYTHON_PLAYWRIGHT_INSTALL=1 when Playwright is a production dependency.
npm projects now use npm install by default, preventing failures when package-lock.json is missing or out of sync. Set RAILPACK_NODE_NPM_INSTALL="npm ci" to opt into deterministic installs. Also updated mise from v2026.7.11 to v2026.7.14.
SvelteKit projects using @sveltejs/adapter-auto now automatically produce and run a Node server without manual adapter configuration. React Router SPA projects with ssr: false are correctly detected as static sites, and Apt package lists support the spread operator to retain generated packages.
Railpack now supports Next.js applications in Nx workspaces, including projects using inferred tasks. The build command adds a --no-cache flag for fresh rebuilds, and runtime images expose RAILPACK_VERSION for diagnostics.
PHP applications using a single Mise-managed runtime package are now included in the deploy image. Updated mise from v2026.7.6 to v2026.7.7.
Python Poetry is now installed via mise's native poetry package instead of pipx, improving environment integration. Also updated mise from v2026.7.5 to v2026.7.6.
