Skip to content

fix(ci): docker-publish docling variant -- free disk + drop arm64#16

Merged
ancongui merged 1 commit into
mainfrom
fix/docker-publish-docling-disk
May 16, 2026
Merged

fix(ci): docker-publish docling variant -- free disk + drop arm64#16
ancongui merged 1 commit into
mainfrom
fix/docker-publish-docling-disk

Conversation

@ancongui
Copy link
Copy Markdown
Contributor

Summary

The docling matrix variant of the Docker publish (multi-arch) workflow has been failing on every push to main with No space left on device during BuildKit's copy step (run 25961140279, run 25960876289). Two coordinated fixes:

  • Free disk space on the docling variant only — prune Android SDK, .NET, Haskell, dotnet caches before the build. Slim variant stays fast.
  • Drop linux/arm64 from the docling variant — multi-arch BuildKit unpacks PyTorch wheels twice (once per arch) and the second dpkg run dies even after pruning the tool caches. amd64 only for now; arm64 consumers can docker buildx build --build-arg WITH_DOCLING=true --platform linux/arm64 locally.

Slim variant is unchanged: still publishes amd64 + arm64 under 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.md and docs/deployment.md — image-variant tables flag the amd64-only constraint on the docling- tag namespace.

Test plan

  • pytest tests/unit — 268 passed (no source changes, just CI YAML + docs).
  • CI green on the workflow change (PR gate)
  • After merge: verify Docker publish (multi-arch) actually succeeds for both flavors on main.

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 ancongui merged commit 2850434 into main May 16, 2026
6 checks passed
@ancongui ancongui deleted the fix/docker-publish-docling-disk branch May 16, 2026 18:50
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant