-
-
Notifications
You must be signed in to change notification settings - Fork 156
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
Use tmpfs in order to build arm/v7 and linux/386 images again #109
Comments
After building the images i included a Debian
Alpine
So I suppose it is about 2G for Debian and 1.3G for Alpine, however, if I lower the size of the tmpfs volume below 4G I ran into some "no space left on device" errors, so I guess more is needed during the unpacking and building phase. |
It looks like both the Debian and Alpine builds take around 60 minutes to complete (it is the |
The details of the problem is discussed in more detail in issue #30, but to summarize we fail to build the pip package "cryptography" for the
arm/v7
andlinux/386
images. The error is somewhere in a low level library that fails when it tries to read from the filesystem when running inside a 32-bit environment that is emulated by QEMU running on a 64-bit host.This is discussed further in the following threads:
The previous workaround no longer works, since there is some package which now requests a newer version of the "cryptography" package, so we need to find a different solution.
What people seems to have done, in order to combat this issue, is to use a tmpfs in cargo's build folder (
~/.cargo
), but the solution in which a tmpfs is only applied to this folder requires Buildx which would then make life more difficult for users which just want to build the image using normal Docker.I therefore researched this a bit more and saw that it is possible to create a tmpfs on the entire
/var/lib/docker
folder, in order to make everything build on such a filesystem instead of only rust/cargo. So with this knowledge I created a GitHub Action that configures the runner in the correct way for this trick to work.The first test run was made here, and it was a success. I needed some tuning of the timeouts, but other than that it appears to be working really well!
The text was updated successfully, but these errors were encountered: