-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Update Alpine ARM docker image #51099
Update Alpine ARM docker image #51099
Conversation
The Alpine ARM docker image is used for cross compilation. There was a breaking change in Alpine 3.13 - it uses a new MUSL that has 64 bit time_t even on 32 bit platforms. Since the official support for Alpine ARM was not announced yet, it was decided that we will support it only on Alpine >= 3.13 instead of having to build and distribute two different versions of runtime. This change updates the docker image used to build Alpine ARM runtime to a new version that uses Alpine 3.13 rootfs. It is also using Ubuntu 16.04 instead of 18.04 as a host to unify it with the one we use to build for Alpine ARM64.
Tagging subscribers to this area: @hoyosjs Issue DetailsThe Alpine ARM docker image is used for cross compilation. There was a This change updates the docker image used to build Alpine ARM runtime to
|
Ah, we'll also need to switch the testing OS for Alpine ARM to Alpine 3.13. |
I have a pending PR dotnet/dotnet-buildtools-prereqs-docker#438 for creating Helix Alpine 3.13 ARM image. After that gets in and the related docker image is produced, I'll update this PR. |
@hoyosjs can you please take a look? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than that question, looks good.
@@ -116,7 +116,7 @@ jobs: | |||
targetRid: linux-musl-arm | |||
platform: Linux_musl_arm | |||
container: | |||
image: ubuntu-18.04-cross-arm-alpine-20200818211451-14441ae | |||
image: ubuntu-16.04-cross-arm-alpine-20210409142327-044d5b9 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason we downgraded to 16.04? This will go out of support this month.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the reason was that cross tools (e.g. crossgen targetting arm, but running on x64) would crash on 16.04 and we also use 16.04 on arm64 musl. I guess that when 16.04 goes out of support, we will need to change all 16.04 based images to 18.04 ones.
Ideally, we would run cross build on CentOS 7, but unfortunately that doesn't work due to some differences in default search paths for libs / headers that are compiled into the llvm tools. I have tried to make it work on CentOS 7 in the past, but I didn't have time to finish it. I'll try to dig out that experimental changes once I get some priority things off my table and see if I can make it work.
/backport to release/5.0 |
Started backporting to release/5.0: https://github.com/dotnet/runtime/actions/runs/753362431 |
@janvorli backporting to release/5.0 failed, the patch most likely resulted in conflicts: $ git am --3way --ignore-whitespace --keep-non-patch changes.patch
Applying: Update Alpine ARM docker image
Using index info to reconstruct a base tree...
M eng/pipelines/common/platform-matrix.yml
Falling back to patching base and 3-way merge...
Auto-merging eng/pipelines/common/platform-matrix.yml
Applying: Update helix queue for Alpine ARM to use Alpine 3.13
Using index info to reconstruct a base tree...
M eng/pipelines/coreclr/templates/helix-queues-setup.yml
Falling back to patching base and 3-way merge...
Auto-merging eng/pipelines/coreclr/templates/helix-queues-setup.yml
CONFLICT (content): Merge conflict in eng/pipelines/coreclr/templates/helix-queues-setup.yml
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0002 Update helix queue for Alpine ARM to use Alpine 3.13
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
Error: The process '/usr/bin/git' failed with exit code 128 Please backport manually! |
The Alpine ARM docker image is used for cross compilation. There was a
breaking change in Alpine 3.13 - it uses a new MUSL that has 64 bit
time_t even on 32 bit platforms. Since the official support for Alpine
ARM was not announced yet, it was decided that we will support it only
on Alpine >= 3.13 instead of having to build and distribute two different
versions of runtime.
This change updates the docker image used to build Alpine ARM runtime to
a new version that uses Alpine 3.13 rootfs. It is also using Ubuntu
16.04 instead of 18.04 as a host to unify it with the one we use to
build for Alpine ARM64.