Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 9, 2026

The Debian 13 Helix Dockerfile manually downloaded libmsquic from Ubuntu 24.04 packages, inconsistent with Debian 11/12 and openSUSE Helix images which use their respective Microsoft distribution feeds.

Changes:

  • Add Microsoft Debian 13 repository via packages-microsoft-prod.deb
  • Install libmsquic through apt-get instead of manual dpkg
  • Remove LIBMSQUIC_VERSION ARG and manual dependency list (libbpf1, libelf1t64, libnl-*, libnuma1, libxdp1)
  • Remove Ubuntu 24.04 .deb download and installation block

Before:

ARG LIBMSQUIC_VERSION=2.4.8
RUN apt-get install -y \
    # ... packages ...
    # libmsquic dependencies
    libbpf1 libelf1t64 libnl-3-200 libnl-route-3-200 libnuma1 libxdp1

# Add MsQuic
RUN ARCH=$TARGETARCH \
    && curl -LO "https://packages.microsoft.com/ubuntu/24.04/prod/.../libmsquic_${LIBMSQUIC_VERSION}_$ARCH.deb" \
    && dpkg -i libmsquic*

After:

RUN apt-get install -y apt-transport-https curl \
    && curl -sL https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -o packages-microsoft-prod.deb \
    && dpkg -i packages-microsoft-prod.deb \
    && apt-get update \
    && apt-get install -y \
        # ... packages ...
        libmsquic

Now matches the Debian 12 pattern (minus software-properties-common which doesn't exist in Debian 13). libmsquic 2.5.6 installs with dependencies handled automatically.

Original prompt

Update Debian 13 Helix Dockerfile in dotnet/dotnet-buildtools-prereqs-docker to use official libmsquic package from Microsoft's Debian 13 feed instead of downloading Ubuntu 24.04 .deb.

Scope and context

  • Repository: dotnet/dotnet-buildtools-prereqs-docker
  • Base branch: main
  • Caller: @richlander

Background
The Debian 13 Helix Dockerfile currently installs libmsquic by manually downloading an Ubuntu 24.04 libmsquic .deb from packages.microsoft.com and installing it with dpkg, along with a list of explicit dependency libraries. This is inconsistent with Debian 11/12 Helix images and with openSUSE Helix images, which use the appropriate Microsoft distro feed and install libmsquic directly with the package manager.

Existing patterns

Current Debian 13 Helix behavior
File: src/debian/13/helix/Dockerfile (at commit 17bd88d)

  • Installs a set of libraries described as "libmsquic dependencies" in the main apt-get install -y block:
    • libbpf1
    • libelf1t64
    • libnl-3-200
    • libnl-route-3-200
    • libnuma1
    • libxdp1
  • Then adds MsQuic via a manual curl/dpkg step that pulls Ubuntu 24.04 packages:
    # Add MsQuic
    RUN ARCH=$TARGETARCH \
        && if [ "$TARGETARCH" = "arm" ]; then \
            ARCH="armhf"; fi \
        && curl -LO "https://packages.microsoft.com/ubuntu/24.04/prod/pool/main/libm/libmsquic/libmsquic_${LIBMSQUIC_VERSION}_$ARCH.deb" \
        && dpkg -i libmsquic* \
        && rm libmsquic*

Goal

  • Make Debian 13 Helix use the Microsoft Debian 13 repository to install libmsquic via apt, using the same pattern as Debian 12.
  • Stop downloading Ubuntu 24.04 libmsquic .deb directly.
  • Rely on the libmsquic package to bring in its own dependencies instead of manually listing all of them where possible, while keeping any other needed runtime libraries.

Required changes

  1. In src/debian/13/helix/Dockerfile:
    • After the initial apt-get install -y block that installs core tools, add steps to:
      • Download and install packages-microsoft-prod.deb for Debian 13 from:
        https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb
      • Run apt-get update.
      • Install libmsquic via apt: apt-get install -y libmsquic.
    • Remove the explicit list of "libmsquic dependencies" (libbpf1, libelf1t64, libnl-3-200, libnl-route-3-200, libnuma1, libxdp1) from the main apt install block, unless any of them are known to be needed independently of libmsquic.
    • Remove the entire # Add MsQuic RUN block that downloads the Ubuntu 24.04 .deb and installs it via dpkg.
    • Ensure rm -rf /var/lib/apt/lists/* remains at the end of the package-install sequence to keep image size small.
    • Keep locale configuration and helix user creation exactly as-is.

Acceptance criteria

  • Debian 13 Helix Dockerfile uses the Microsoft Debian 13 feed (packages-microsoft-prod.deb) and apt-get install libmsquic to install MsQuic.
  • No remaining references to the Ubuntu 24.04 libmsquic .deb URL or to manual dpkg -i libmsquic* in this Dockerfile.
  • The Dockerfile remains consistent in structure and style with Debian 12 Helix Dockerfiles and other Helix images.
  • CI/build for Debian 13 Helix should continue to succeed using the updated Dockerfile.

This pull request was created from Copilot chat.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…rom Microsoft Debian 13 feed

Co-authored-by: richlander <[email protected]>
@richlander
Copy link
Member

@wfurt -- another one to update.

@richlander richlander marked this pull request as ready for review January 9, 2026 01:05
@richlander richlander requested review from a team as code owners January 9, 2026 01:05
Copilot AI changed the title [WIP] Update Debian 13 Helix Dockerfile to use official libmsquic package Use Microsoft Debian 13 feed for libmsquic in Helix Dockerfile Jan 9, 2026
Copilot AI requested a review from richlander January 9, 2026 01:07
@richlander richlander enabled auto-merge (squash) January 9, 2026 01:14
Copy link
Member

@wfurt wfurt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice.

@richlander richlander merged commit 6d1e409 into main Jan 9, 2026
16 checks passed
@richlander richlander deleted the copilot/update-debian-13-dockerfile branch January 9, 2026 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants