dotnet / dotnet-buildtools-prereqs-docker

Used to maintain the Docker images hosted at the mcr.microsoft.com/dotnet-buildtools/prereqs image repository
MIT License
53 stars 99 forks source link

Set break-system-packages in Debian 12 helix image #1046

Closed sbomer closed 1 month ago

sbomer commented 1 month ago

Fixes failures running tests on the new arm32 images in https://github.com/dotnet/runtime/pull/102059:

[BEGIN EXECUTION]
+ sudo python -m pip install --disable-pip-version-check -r /root/helix/scripts/runtime_python_requirements.txt
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

This fix is only for the arm32 image, which is the only one used in dotnet/runtime.

There are references to debian-12 arm images in aspnetcore, but they seem to be unused. The arm64 and amd64 images have similar errors if I try 'sudo pip install' locally, so they are probably broken as well, but I'm limiting the fix to arm32 images that we know we need for ci.

sbomer commented 1 month ago

This is failing in an unrelated way:

Retry 5/5, retrying in 625 seconds...
mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5: Pulling from dotnet-buildtools/prereqs
1468e7ff95fc: Already exists
687858a0962b: Pulling fs layer
4a4d7a25a30b: Pulling fs layer
9e84e19a7c1b: Pulling fs layer
f6db9aacd22c: Pulling fs layer
4f7a1bebf4c1: Pulling fs layer
f6db9aacd22c: Waiting
4f7a1bebf4c1: Waiting
error pulling image configuration: download failed after attempts=1: unknown blob
-- EXECUTION ELAPSED TIME: 00:13:03.0327966
Unhandled exception: System.InvalidOperationException: Failed to execute docker pull mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5

error pulling image configuration: download failed after attempts=1: unknown blob
   at Microsoft.DotNet.ImageBuilder.ExecuteHelper.Execute(ProcessStartInfo info, Func`2 executor, Boolean isDryRun, String errorMessage, String executeMessageOverride) in /image-builder/src/ExecuteHelper.cs:line 101

@mthalman would you be able to help?

mthalman commented 1 month ago

I was able to pull that image locally. This may have just been a transient error from the MAR registry. I'm retrying the build.

mthalman commented 1 month ago

Hmm, still not working. I'll have to look deeper. This is strange.

mthalman commented 1 month ago

Ok, it is transient. Another build I tried eventually worked:

Error response from daemon: manifest for mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5 not found: manifest unknown: manifest sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5 is not found
Retry 1/5, retrying in 1 seconds...
Error response from daemon: manifest for mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5 not found: manifest unknown: manifest sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5 is not found
Retry 2/5, retrying in 5 seconds...
Error response from daemon: manifest for mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5 not found: manifest unknown: manifest sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5 is not found
Retry 3/5, retrying in 25 seconds...
mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:dc3fba39dc74639dd787261b35fb761c6b463489796578e0dea052c0c0054af5: Pulling from dotnet-buildtools/prereqs
1468e7ff95fc: Already exists
687858a0962b: Pulling fs layer
4a4d7a25a30b: Pulling fs layer
9e84e19a7c1b: Pulling fs layer
f6db9aacd22c: Pulling fs layer
4f7a1bebf4c1: Pulling fs layer
sbomer commented 1 month ago

Thank you!