From 9acfa090d5152915ae560112e3883cb8ea681de1 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Thu, 9 May 2024 09:46:26 -0700 Subject: [PATCH] Add arm32 Debian 12 helix image (#1041) https://github.com/dotnet/dotnet-buildtools-prereqs-docker/pull/1037 updated the glibc baseline for our arm32 images, but we were still running tests on Debian 11 which has an older version, causing the failures in https://github.com/dotnet/runtime/issues/102030. This adds a new Debian 12 image. --- src/debian/12/helix/arm32v7/Dockerfile | 65 ++++++++++++++++++++++++++ src/debian/manifest.json | 15 ++++++ 2 files changed, 80 insertions(+) create mode 100644 src/debian/12/helix/arm32v7/Dockerfile diff --git a/src/debian/12/helix/arm32v7/Dockerfile b/src/debian/12/helix/arm32v7/Dockerfile new file mode 100644 index 000000000..424584288 --- /dev/null +++ b/src/debian/12/helix/arm32v7/Dockerfile @@ -0,0 +1,65 @@ +FROM debian:bookworm + +# Install Helix Dependencies + +RUN apt-get update && \ + apt-get install -y \ + autoconf \ + automake \ + at \ + build-essential \ + curl \ + gcc \ + gdb \ + git \ + iputils-ping \ + libcurl4 \ + libffi-dev \ + libgdiplus \ + libicu-dev \ + libssl-dev \ + libtool \ + libunwind8 \ + llvm \ + locales \ + locales-all \ + pkg-config \ + python3-cryptography \ + python3-dev \ + python3-pip \ + rustc \ + software-properties-common \ + sudo \ + tzdata \ + unzip \ + && rm -rf /var/lib/apt/lists/* \ + \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 + +ENV LANG=en_US.utf8 + +RUN ln -sf /usr/bin/python3 /usr/bin/python && \ + python3 -m pip install virtualenv==20.17.1 --break-system-packages && \ + python3 -m pip download --no-deps helix-scripts --index-url https://dnceng.pkgs.visualstudio.com/public/_packaging/helix-client-prod/pypi/simple && \ + python3 -m pip install ./helix_scripts-*-py3-none-any.whl --break-system-packages + +# Add MsQuic +RUN curl -LO https://packages.microsoft.com/keys/microsoft.asc && \ + echo 2cfd20a306b2fa5e25522d78f2ef50a1f429d35fd30bd983e2ebffc2b80944fa microsoft.asc| sha256sum --check - && \ + apt-key add microsoft.asc && \ + rm microsoft.asc && \ + echo deb https://packages.microsoft.com/debian/12/prod bookworm main >> /etc/apt/sources.list.d/microsoft.list && \ + apt-get update && \ + apt-get install -y libmsquic && \ + rm -rf /var/lib/apt/lists/* + +# Create helixbot users and give rights to sudo without password +# (we use two users here to ensure volume mounting works with two possible UIDs of the host UID) +# additionally, preinstall the virtualenv packages used for VSTS reporting to save time +RUN /usr/sbin/adduser --disabled-password --gecos '' --uid 1000 --shell /bin/bash --ingroup adm helixbot && \ + chmod 755 /root && \ + echo "helixbot ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers + +USER helixbot + +RUN python -m virtualenv /home/helixbot/.vsts-env diff --git a/src/debian/manifest.json b/src/debian/manifest.json index 34751f4eb..8d23382a5 100644 --- a/src/debian/manifest.json +++ b/src/debian/manifest.json @@ -90,6 +90,21 @@ } ] }, + { + "platforms": [ + { + "architecture": "arm64", + "dockerfile": "src/debian/12/helix/arm32v7", + "os": "linux", + "osVersion": "bookworm", + "tags": { + "debian-12-helix-arm32v7-$(System:TimeStamp)-$(System:DockerfileGitCommitSha)": {}, + "debian-12-helix-arm32v7$(FloatingTagSuffix)": {} + }, + "variant": "v8" + } + ] + }, { "platforms": [ {