mirror of
https://github.com/healthchecks/healthchecks.git
synced 2026-04-25 06:55:53 +03:00
[GH-ISSUE #565] [DOCKER] Docker build failing on arm - cryptography requires Rust #411
Labels
No labels
bug
bug
bug
feature
good-first-issue
new integration
pull-request
question
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/healthchecks#411
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @achilleas-k on GitHub (Sep 30, 2021).
Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/565
With the latest Cryptography update (35.0.0), the
CRYPTOGRAPHY_DONT_BUILD_RUSTenv var is ignored and rust is now required to build cryptography. This breaks Docker on arm again, which was originally fixed in #492.@cuu508 commented on GitHub (Sep 30, 2021):
Thanks for the report!
Pinning cryptography==3.4.8 would work but is of course not ideal.
I tried installing rust first:
And then installing cryptography. This works but takes more than 5 minutes (I'm experimenting on rPi), so also not great.
It would be best if we could get pip to use binary wheels.
@cuu508 commented on GitHub (Sep 30, 2021):
Filed an issue (more like a support request) in the cryptography repo: https://github.com/pyca/cryptography/issues/6342
@cuu508 commented on GitHub (Sep 30, 2021):
OK, so cryptography does not provide (and don't plan to provide) 32-bit arm wheels.
Healthchecks needs the fido2 library for WebAuthn support.
fido2 really needs cryptography – it's used throughout the library.
And, starting from version 35, cryptography really needs rust.
There is https://www.piwheels.org/ – a wheel repository for Raspberry Pi. I tested it out:
But I'm not sure what to do with the Dockerfile. It seems wrong to add the piwheels repository for all architectures.
@achilleas-k commented on GitHub (Sep 30, 2021):
I know what you mean. Probably makes more sense to build it from source instead and take the 5 min build time.
Could do a multi-step build where the first container builds cryptography to speed up rebuilds and updates without rebuilding cryptography.
@cuu508 commented on GitHub (Oct 13, 2021):
I updated the Dockerfile to use the prebuilt wheels from piwheels.org but only if the architecture is
armhf:The alternative of installing rust and building cryptography from source is problematic on
armhf– see #568.