Skip to content

Pin Docker Hub BuildKit image to v0.30.0 - #2523

Merged
MuhammadTahaNaveed merged 1 commit into
apache:masterfrom
jrgemignani:fix-buildkit-pin_0_30_0
Aug 20, 2026
Merged

Pin Docker Hub BuildKit image to v0.30.0#2523
MuhammadTahaNaveed merged 1 commit into
apache:masterfrom
jrgemignani:fix-buildkit-pin_0_30_0

Conversation

@jrgemignani

Copy link
Copy Markdown
Contributor

Commit 8f16cf5 pinned the docker-container buildx driver to moby/buildkit:v0.31.2 to dodge the runc masked-path regression, but that release bundles runc 1.3.6, which already contains the maskDir() change. Every RUN step still fails during container init:

can't mask dir "/proc/acpi": mount src=tmpfs, dst=/proc/acpi,
flags=MS_RDONLY, data=nr_blocks=1,nr_inodes=1: invalid argument

maskDir() mounts masked paths with nr_inodes=1, which the Docker Hub build host's Ubuntu 20.04 5.4 kernel rejects with EINVAL (opencontainers/runc#5348).

Bundled runc by BuildKit release:
v0.30.0 runc 1.3.5 unaffected
v0.31.0 - v0.31.2 runc 1.3.6 affected
v0.32.0 - v0.32.2 runc 1.4.3 affected

v0.32.2 is the newest BuildKit release, so no version ships the fix yet. Pin to v0.30.0, the last release predating maskDir(). Drop the pin once BuildKit ships runc >= 1.4.4.

Verified locally: a multi-arch (linux/amd64, linux/arm64) build of this Dockerfile with moby/buildkit:v0.30.0 completes, and both image variants create a graph and run Cypher queries.

Commit 8f16cf5 pinned the docker-container buildx driver to
moby/buildkit:v0.31.2 to dodge the runc masked-path regression, but that
release bundles runc 1.3.6, which already contains the maskDir() change.
Every RUN step still fails during container init:

  can't mask dir "/proc/acpi": mount src=tmpfs, dst=/proc/acpi,
  flags=MS_RDONLY, data=nr_blocks=1,nr_inodes=1: invalid argument

maskDir() mounts masked paths with nr_inodes=1, which the Docker Hub build
host's Ubuntu 20.04 5.4 kernel rejects with EINVAL (opencontainers/runc#5348).

Bundled runc by BuildKit release:
  v0.30.0             runc 1.3.5   unaffected
  v0.31.0 - v0.31.2   runc 1.3.6   affected
  v0.32.0 - v0.32.2   runc 1.4.3   affected

v0.32.2 is the newest BuildKit release, so no version ships the fix yet.
Pin to v0.30.0, the last release predating maskDir(). Drop the pin once
BuildKit ships runc >= 1.4.4.

Verified locally: a multi-arch (linux/amd64, linux/arm64) build of this
Dockerfile with moby/buildkit:v0.30.0 completes, and both image variants
create a graph and run Cypher queries.
@jrgemignani
jrgemignani requested review from MuhammadTahaNaveed, gregfelice and muhammadshoaib and a lite review from Copilot August 19, 2026 16:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Pins the Docker Hub buildx Docker-container driver’s BuildKit image to a version that avoids a known runc masked-path regression on the Docker Hub Ubuntu 20.04 / 5.4 kernel hosts.

Changes:

  • Update the buildx driver image pin from moby/buildkit:v0.31.2 to moby/buildkit:v0.30.0.
  • Expand the inline rationale comment with details about the kernel/runc incompatibility and affected BuildKit versions.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docker/hooks/build
@MuhammadTahaNaveed
MuhammadTahaNaveed merged commit 9be6efc into apache:master Aug 20, 2026
6 of 7 checks passed
jrgemignani added a commit that referenced this pull request Aug 20, 2026
NOTE: This is needed to allow Docker Hub builds for both latest and release/PG18/1.8.0 to build and is outside of the release.

Commit 8f16cf5 pinned the docker-container buildx driver to
moby/buildkit:v0.31.2 to dodge the runc masked-path regression, but that
release bundles runc 1.3.6, which already contains the maskDir() change.
Every RUN step still fails during container init:

  can't mask dir "/proc/acpi": mount src=tmpfs, dst=/proc/acpi,
  flags=MS_RDONLY, data=nr_blocks=1,nr_inodes=1: invalid argument

maskDir() mounts masked paths with nr_inodes=1, which the Docker Hub build
host's Ubuntu 20.04 5.4 kernel rejects with EINVAL (opencontainers/runc#5348).

Bundled runc by BuildKit release:
  v0.30.0             runc 1.3.5   unaffected
  v0.31.0 - v0.31.2   runc 1.3.6   affected
  v0.32.0 - v0.32.2   runc 1.4.3   affected

v0.32.2 is the newest BuildKit release, so no version ships the fix yet.
Pin to v0.30.0, the last release predating maskDir(). Drop the pin once
BuildKit ships runc >= 1.4.4.

Verified locally: a multi-arch (linux/amd64, linux/arm64) build of this
Dockerfile with moby/buildkit:v0.30.0 completes, and both image variants
create a graph and run Cypher queries.
jrgemignani added a commit that referenced this pull request Aug 20, 2026
Commit 8f16cf5 pinned the docker-container buildx driver to
moby/buildkit:v0.31.2 to dodge the runc masked-path regression, but that
release bundles runc 1.3.6, which already contains the maskDir() change.
Every RUN step still fails during container init:

  can't mask dir "/proc/acpi": mount src=tmpfs, dst=/proc/acpi,
  flags=MS_RDONLY, data=nr_blocks=1,nr_inodes=1: invalid argument

maskDir() mounts masked paths with nr_inodes=1, which the Docker Hub build
host's Ubuntu 20.04 5.4 kernel rejects with EINVAL (opencontainers/runc#5348).

Bundled runc by BuildKit release:
  v0.30.0             runc 1.3.5   unaffected
  v0.31.0 - v0.31.2   runc 1.3.6   affected
  v0.32.0 - v0.32.2   runc 1.4.3   affected

v0.32.2 is the newest BuildKit release, so no version ships the fix yet.
Pin to v0.30.0, the last release predating maskDir(). Drop the pin once
BuildKit ships runc >= 1.4.4.

Verified locally: a multi-arch (linux/amd64, linux/arm64) build of this
Dockerfile with moby/buildkit:v0.30.0 completes, and both image variants
create a graph and run Cypher queries.
MuhammadTahaNaveed pushed a commit that referenced this pull request Aug 21, 2026
Commit 8f16cf5 pinned the docker-container buildx driver to
moby/buildkit:v0.31.2 to dodge the runc masked-path regression, but that
release bundles runc 1.3.6, which already contains the maskDir() change.
Every RUN step still fails during container init:

  can't mask dir "/proc/acpi": mount src=tmpfs, dst=/proc/acpi,
  flags=MS_RDONLY, data=nr_blocks=1,nr_inodes=1: invalid argument

maskDir() mounts masked paths with nr_inodes=1, which the Docker Hub build
host's Ubuntu 20.04 5.4 kernel rejects with EINVAL (opencontainers/runc#5348).

Bundled runc by BuildKit release:
  v0.30.0             runc 1.3.5   unaffected
  v0.31.0 - v0.31.2   runc 1.3.6   affected
  v0.32.0 - v0.32.2   runc 1.4.3   affected

v0.32.2 is the newest BuildKit release, so no version ships the fix yet.
Pin to v0.30.0, the last release predating maskDir(). Drop the pin once
BuildKit ships runc >= 1.4.4.

Verified locally: a multi-arch (linux/amd64, linux/arm64) build of this
Dockerfile with moby/buildkit:v0.30.0 completes, and both image variants
create a graph and run Cypher queries.
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.

3 participants