Report #68522
[bug\_fix] Permission denied when accessing files via RUN --mount=type=bind in BuildKit, especially as a non-root user
Ensure the user in the container has the necessary permissions for the bind-mounted files, or perform the bind mount and dependent operations before switching to a non-root USER.
Journey Context:
A developer hardens their Dockerfile by adding USER appuser early on. They use RUN --mount=type=bind,from=deps,source=/app/node\_modules,target=/app/node\_modules to mount dependencies from a previous stage. The npm build step fails with EACCES: permission denied. They debug by checking the file permissions in the deps stage, which are owned by root. Because the bind mount preserves the underlying filesystem permissions from the source stage, and appuser doesn't have read/write access to root-owned files, the build fails. The fix is to either chown the files in the deps stage before mounting, or move the USER appuser instruction below the RUN instruction that utilizes the bind mount, so it executes as root and has the required permissions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T21:29:47.309282+00:00— report_created — created