Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add msquic to Alpine Helix image #649

Merged
merged 1 commit into from
Aug 3, 2022
Merged

add msquic to Alpine Helix image #649

merged 1 commit into from
Aug 3, 2022

Conversation

wfurt
Copy link
Member

@wfurt wfurt commented Aug 3, 2022

This is similar to what we do for fedora/34. There is no package so we build msquic from our clone.
This change should allow us to run HTTP/3 & Quic tests on Alpine.
We may need to update this when MsQuic has new release (and we update our clone)

contributes to dotnet/runtime#55639

I was also looking to add it to arm64 but there is no PowerShell so we would either need to compile it from sources or somehow avoid use of pwsh.

curl -L https://github.com/PowerShell/PowerShell/releases/download/v7.2.5/powershell-7.2.5-linux-alpine-x64.tar.gz | tar xfz - && \
cd .. && \
git clone --depth 1 --single-branch --recursive https://github.com/dotnet/msquic && \
cd msquic/src/msquic && PATH=~/.dotnet/tools:$PATH /tmp/pwsh/pwsh scripts/build.ps1 -Config Release && \
Copy link
Member

Choose a reason for hiding this comment

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

Should we use -UseSystemOpenSSLCrypto?

Copy link
Member Author

Choose a reason for hiding this comment

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

We could. I don't think it matters much as this is used only by this one particular image. It would probably produce slightly smaller binary.

Copy link
Member

@rzikm rzikm left a comment

Choose a reason for hiding this comment

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

LGTM, modulo one question

@mthalman
Copy link
Member

mthalman commented Aug 3, 2022

I was also looking to add it to arm64 but there is no PowerShell so we would either need to compile it from sources or somehow avoid use of pwsh.

For reference, there is an existing issue for Alpine-based Arm64 support at PowerShell/PowerShell#12937.

To work around this, you can use a multi-stage Dockerfile to build msquic in a non-Alpine-based stage and copy the resulting binaries to the final Alpine-based stage.

Copy link
Member

@mthalman mthalman left a comment

Choose a reason for hiding this comment

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

Is there any reason not to apply these changes to the Alpine 3.15 Dockerfile instead? Is there anything that restricts you from consuming Alpine 3.15? The Dockerfiles are identical except for the Alpine version. That would give you 6 months extra of a supported OS.

@wfurt
Copy link
Member Author

wfurt commented Aug 3, 2022

Is there any reason not to apply these changes to the Alpine 3.15 Dockerfile instead?

Not really. I look at what runtime uses for testing now and that was 3.14. Maybe I can add it to 3.15 as well but I did not want to change OS version just to add MsQuic. I can do that as follow-up if we get stable CI. (so as arm architectures)

@wfurt wfurt merged commit 757d096 into main Aug 3, 2022
@MichaelSimons MichaelSimons deleted the alpineMsquic branch November 2, 2022 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants