Skip to content

Build a complete AMD64 and ARM64 Railpack image #805

Closed

Description

@nick-potts

Parent

Build runner spec (#798)

What to build

Extend the Railpack recipe behind the existing executor to build an explicitly configured Linux AMD64/ARM64 image. This slice is independently usable through standalone build; automatic Deploy platform inference belongs to the following mixed-architecture delivery slice.

Acceptance criteria

  • Accept explicit supported Railpack platform requirements and validate actual worker/emulation capability before compilation. Preserve native-platform defaults for standalone builds. Dockerfiles still refuse multiple platforms; compilation is not automatically distributed across Machines.
  • Use the prototype's proven approach for the pinned Railpack version: distinct single-platform solves and local OCI index assembly using the upstream image utility. Keep orchestration inside execute; callers still capture once and consume one result. Never overwrite a shared tag with successive platform outputs, and never mark an incomplete solve set or failed assembly/import as successful.
  • Load the resulting image into the execution host's Docker containerd store and verify each required manifest, configuration and layer actually exists. Return one immutable image identity, its requested tags, both available platforms and its location. Retain exact-content binding despite later tag changes.
  • Keep all solves, assembly, and import within one Build Attempt's admission slot, timeout, cancellation, private-material and cache ownership. Stop remaining work on failure/cancellation. Remove the disposable builder after the attempt while retaining cache and the completed image.
  • Use rung-2 tests for missing-variant and assembly/import failure outcomes without exposing private solve orchestration as the test interface. Register a rung-4 real Railpack AMD64/ARM64 build, inspect actual content inventory, and run both variants with registry fallback disabled. Emulated ARM64 is acceptable evidence for this assembly slice but must be labeled as such; native Machine and release Authority proof belongs to the qualification path.
  • Link and preserve the prototype findings as the primary evidence for per-platform solves and OCI assembly. The prototype used shipped beta binaries and emulated ARM64, so it cannot substitute for tests of this implementation.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions