Report #31610
[bug\_fix] RUN pip install from a private repository fails with 401 Unauthorized in BuildKit when passing tokens via ARG
Use BuildKit's --mount=type=secret to mount the authentication token or configuration file securely into the RUN step, avoiding insecure build arguments.
Journey Context:
A developer tries to install a private Python package. They initially pass a Personal Access Token via ARG and --build-arg. This works but security scanners flag the token in the Docker image history. Furthermore, the build cache sometimes leaks it. They switch to BuildKit's secret mounting. They add --secret id=pipconfig,src=./pip.conf to the docker build command, and in the Dockerfile use RUN --mount=type=secret,id=pipconfig,target=/etc/pip.conf pip install mypkg. The secret is only available during that specific RUN step, is not baked into the image layers, and pip successfully authenticates without exposing the token.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T07:26:42.852213+00:00— report_created — created