fix(ci): docker-publish docling variant -- free disk + drop arm64#16
Merged
Conversation
The docling matrix variant fails on push to main with ``No space left on device`` during the BuildKit copy step. Multi-arch (amd64 + arm64) BuildKit unpacks PyTorch wheels once per architecture, plus the second ``dpkg`` run for the runtime apt step hits the disk wall. The default ``ubuntu-latest`` runner gives us ~14 GB free which isn't enough; pruning the runner's tool caches buys another ~25 GB but the dual-arch build still overflows. Two coordinated changes: * ``free-disk-space`` step (Android/.NET/Haskell/dotnet) runs before the docling build only -- the slim build stays fast. * Docling variant publishes ``linux/amd64`` only. arm64 consumers can build the variant locally with ``docker buildx build --build-arg WITH_DOCLING=true --platform linux/arm64``. Slim variant unchanged: still publishes amd64 + arm64 with the same canonical tag set (``:latest``, ``:vX.Y.Z``, ``:sha-...``). Docs updated: * ``docs/cicd.md`` adds an Architectures column to the publish table + a note explaining the arm64 drop. * ``docs/docling.md`` and ``docs/deployment.md`` flag the amd64-only constraint on the ``docling-`` tag namespace. Promote the docling variant back to multi-arch once we migrate to larger runners (paid ``ubuntu-latest-l`` tier or self-hosted).
ancongui
added a commit
that referenced
this pull request
May 31, 2026
The docling matrix variant fails on push to main with ``No space left on device`` during the BuildKit copy step. Multi-arch (amd64 + arm64) BuildKit unpacks PyTorch wheels once per architecture, plus the second ``dpkg`` run for the runtime apt step hits the disk wall. The default ``ubuntu-latest`` runner gives us ~14 GB free which isn't enough; pruning the runner's tool caches buys another ~25 GB but the dual-arch build still overflows. Two coordinated changes: * ``free-disk-space`` step (Android/.NET/Haskell/dotnet) runs before the docling build only -- the slim build stays fast. * Docling variant publishes ``linux/amd64`` only. arm64 consumers can build the variant locally with ``docker buildx build --build-arg WITH_DOCLING=true --platform linux/arm64``. Slim variant unchanged: still publishes amd64 + arm64 with the same canonical tag set (``:latest``, ``:vX.Y.Z``, ``:sha-...``). Docs updated: * ``docs/cicd.md`` adds an Architectures column to the publish table + a note explaining the arm64 drop. * ``docs/docling.md`` and ``docs/deployment.md`` flag the amd64-only constraint on the ``docling-`` tag namespace. Promote the docling variant back to multi-arch once we migrate to larger runners (paid ``ubuntu-latest-l`` tier or self-hosted). Co-authored-by: ancongui <andres.contreras@soon.es>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The docling matrix variant of the
Docker publish (multi-arch)workflow has been failing on every push tomainwithNo space left on deviceduring BuildKit's copy step (run 25961140279, run 25960876289). Two coordinated fixes:linux/arm64from the docling variant — multi-arch BuildKit unpacks PyTorch wheels twice (once per arch) and the seconddpkgrun dies even after pruning the tool caches. amd64 only for now; arm64 consumers candocker buildx build --build-arg WITH_DOCLING=true --platform linux/arm64locally.Slim variant is unchanged: still publishes
amd64 + arm64under the canonical tag set (:latest,:vX.Y.Z,:sha-...).Docs
docs/cicd.md— new Architectures column on the publish table + an explanatory note about why docling drops arm64.docs/docling.mdanddocs/deployment.md— image-variant tables flag the amd64-only constraint on thedocling-tag namespace.Test plan
pytest tests/unit— 268 passed (no source changes, just CI YAML + docs).Docker publish (multi-arch)actually succeeds for both flavors onmain.