build: make pinned image inputs portable
prd-number-check / require-numbered-prds (pull_request) Successful in 8s
refresh-image-locks / refresh (push) Successful in 28s
lint / lint (push) Successful in 1m3s
test / unit (pull_request) Successful in 53s
test / integration-docker (pull_request) Successful in 2m50s
test / coverage (pull_request) Failing after 22s
test / image-input-builds (pull_request) Successful in 3m35s
tracker-policy-pr / check-pr (pull_request) Failing after 11m8s

This commit is contained in:
2026-07-26 09:42:54 +00:00
parent 023b23de6a
commit 377f8d125b
11 changed files with 130 additions and 33 deletions
+9 -4
View File
@@ -7,7 +7,10 @@ immutability:
- Python and Node base images use version-qualified tags plus multi-platform
OCI index digests.
- Debian packages resolve from the same dated `snapshot.debian.org` archive in
every image that runs `apt-get install`.
every image that runs `apt-get install`. The snapshot endpoint uses HTTP so a
fresh image does not need a host-specific TLS interception CA; APT still
authenticates the repository metadata and package hashes with Debian's
signed Release files.
- Gateway Python dependencies install from `requirements.gateway.lock` with
`pip --require-hashes`; provider npm packages install with `npm ci` from
committed lockfiles.
@@ -17,9 +20,11 @@ immutability:
The standalone layout is retained because Codex remote control requires it.
`Dockerfile.orchestrator.fc` is the one intentionally dynamic `FROM`. It has no
default value: the Firecracker build coordinator builds the orchestrator first,
resolves its local `sha256:` image ID, and supplies that exact ID as
`ORCHESTRATOR_BASE_IMAGE`.
default value: the Firecracker build coordinator resolves the freshly built
orchestrator's local `sha256:` image ID, creates a local tag containing the
complete ID, verifies that tag resolves to the same ID, and supplies the
content-derived reference as `ORCHESTRATOR_BASE_IMAGE`. This accommodates
BuildKit, which treats a bare image ID in `FROM` as a registry repository.
## Refreshing inputs