Skip to content

Add Ubuntu 24.04 Arm32 Helix Dockerfile #1120

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

Merged
merged 9 commits into from
Jul 8, 2024

Conversation

richlander
Copy link
Member

@richlander richlander commented Jun 28, 2024

Successfully tested/built on Apple M1 with: docker build --pull -t helix-arm32 --platform linux/arm .

We don't have a 20.04 Arm32 helix image. I think we can skip that and just focus on tip (for this architecture). Although there is this PR #1043.

The following may well be hiding an incompatibility. I propose we merge as-is and then validate with runtime tests (and then possibly disable appropriate tests).

dpkg -i --ignore-depends=libssl3 libmsquic_*.deb && \

Done as a result of:

dpkg -i libmsquic_*.deb
Selecting previously unselected package libmsquic.
(Reading database ... 5008 files and directories currently installed.)
Preparing to unpack libmsquic_2.3.5_armhf.deb ...
Unpacking libmsquic (2.3.5) ...
dpkg: dependency problems prevent configuration of libmsquic:
 libmsquic depends on libssl3; however:
  Package libssl3 is not installed.

dpkg: error processing package libmsquic (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libmsquic

@mthalman @wfurt

@richlander richlander requested a review from a team as a code owner June 28, 2024 23:20
Copy link
Member

Choose a reason for hiding this comment

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

There are some differences between this file and https://github.com/dotnet/dotnet-buildtools-prereqs-docker/blob/main/src/ubuntu/24.04/helix/Dockerfile. Are these differences intentional? I'm curious why the multi-arch Dockerfile that already exists doesn't work for Arm32?

Copy link
Member Author

Choose a reason for hiding this comment

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

The main issue is that the package won't install as-is.

Copy link
Member Author

Choose a reason for hiding this comment

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

Also libcurl isn't available in the arm feed because of Y2038. libcurl4t64 is there in its place.

Copy link
Member

Choose a reason for hiding this comment

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

That looks like a trivial difference that could be handled dynamically within a single Dockerfile. You could check the value of TARGETARCH to determine whether to install libcurl4 or libcurl4t64, set the name to a variable and then include that variable name in the list of packages.

I'd really like to work hard to avoid duplication of content between Dockerfiles in this repo and set a better precedent than in the past.

Copy link
Member Author

Choose a reason for hiding this comment

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

That is a good idea however that doesn't change the part about libmsquic.

Copy link
Member

Choose a reason for hiding this comment

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

Why can't that be conditionally executed as well?

Copy link
Member Author

Choose a reason for hiding this comment

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

It can. It is just making the Dockerfile a bit complicated. However, I can give that a try.

Copy link
Member Author

Choose a reason for hiding this comment

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

OK. That wasn't quite as bad as I expected. I was able to single source the Dockerfile.

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.

Thanks for accommodating my requests. Just a few minor things to clean up.

@mthalman mthalman merged commit c20804d into main Jul 8, 2024
34 checks passed
@richlander richlander deleted the it-never-gets-better-with-arm32 branch July 8, 2024 16:55
@richlander
Copy link
Member Author

Thanks for your help on this @mthalman. I'm quite happy with the result and that we were able to set a good standard for single sourcing Dockerfiles for multiple architectures. Thanks for your leadership (and patience)!

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.

2 participants