Skip to content

Commit eb2a25f

Browse files
authored
Set break-system-packages in Debian 12 helix image (#1046)
Fixes failures running tests on the new arm32 images in dotnet/runtime#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.
1 parent 9acfa09 commit eb2a25f

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/debian/12/helix/arm32v7/Dockerfile

+7
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ RUN /usr/sbin/adduser --disabled-password --gecos '' --uid 1000 --shell /bin/bas
6060
chmod 755 /root && \
6161
echo "helixbot ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers
6262

63+
# Debian 12 is set up with its python environment marked as externally managed
64+
# (https://packaging.python.org/en/latest/specifications/externally-managed-environments/).
65+
# This causes errors when helix setup (at runtime) does 'sudo pip install'.
66+
# Work around this by overriding the check for externally managed environments.
67+
RUN mkdir -p ~/.config/pip && \
68+
echo "[global]\nbreak-system-packages = true" > ~/.config/pip/pip.conf
69+
6370
USER helixbot
6471

6572
RUN python -m virtualenv /home/helixbot/.vsts-env

0 commit comments

Comments
 (0)