diff --git a/src/alpine/3.21/helix/Dockerfile b/src/alpine/3.21/helix/Dockerfile new file mode 100644 index 00000000..1aaeb765 --- /dev/null +++ b/src/alpine/3.21/helix/Dockerfile @@ -0,0 +1,60 @@ +FROM library/alpine:3.21 AS venv + +RUN apk add --upgrade --no-cache \ + cargo \ + python3-dev \ + build-base \ + libffi-dev \ + openssl-dev \ + gcc \ + linux-headers + +RUN python3 -m venv /venv && \ + source /venv/bin/activate && \ + pip download --no-deps helix-scripts --index-url https://dnceng.pkgs.visualstudio.com/public/_packaging/helix-client-prod/pypi/simple && \ + pip install ./helix_scripts-*-py3-none-any.whl + +FROM library/alpine:3.21 + +# Install .NET and test dependencies +RUN apk add --upgrade --no-cache \ + bash \ + coreutils \ + curl \ + icu-data-full \ + icu-libs \ + iputils \ + krb5-libs \ + lldb \ + llvm \ + lttng-ust \ + musl-locales \ + numactl \ + openssl \ + python3 \ + python3-dev \ + py3-pip \ + sudo \ + tzdata + +# Install libmsquic from testing repository +RUN apk add --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/ libmsquic + +# Needed for runtime tests to pass +ENV LANG=en-US.UTF-8 +RUN echo export LANG=${LANG} >> /etc/profile.d/locale.sh + +# create helixbot user and give rights to sudo without password +# Alpine does not support long options +RUN /usr/sbin/adduser -D -g '' -G adm -s /bin/bash -u 1000 helixbot && \ + chmod 755 /root && \ + echo "helixbot ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/helixbot + +USER helixbot + +# Install Helix Dependencies + +ENV VIRTUAL_ENV=/home/helixbot/.vsts-env +RUN python3 -m venv $VIRTUAL_ENV +ENV PATH="$VIRTUAL_ENV/bin:$PATH" +COPY --from=venv /venv $VIRTUAL_ENV diff --git a/src/alpine/manifest.json b/src/alpine/manifest.json index c826a284..6d547d98 100644 --- a/src/alpine/manifest.json +++ b/src/alpine/manifest.json @@ -216,6 +216,47 @@ } } ] + }, + { + "platforms": [ + { + "architecture": "amd64", + "dockerfile": "src/alpine/3.21/helix", + "os": "linux", + "osVersion": "alpine3.21", + "tags": { + "alpine-3.21-helix-amd64": {} + } + } + ] + }, + { + "platforms": [ + { + "architecture": "arm", + "dockerfile": "src/alpine/3.21/helix", + "os": "linux", + "osVersion": "alpine3.21", + "tags": { + "alpine-3.21-helix-arm32v7": {} + }, + "variant": "v7" + } + ] + }, + { + "platforms": [ + { + "architecture": "arm64", + "dockerfile": "src/alpine/3.21/helix", + "os": "linux", + "osVersion": "alpine3.21", + "tags": { + "alpine-3.21-helix-arm64v8": {} + }, + "variant": "v8" + } + ] } ] }