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

Introduce support for building ARM architecture images #77

Merged
merged 6 commits into from
Nov 9, 2019

Conversation

tazjin
Copy link
Owner

@tazjin tazjin commented Nov 5, 2019

See individual commits.

This fixes #13.

@tazjin tazjin added the enhancement New feature or request label Nov 5, 2019
Adds the CPU architecture to the image configuration. This will make
it possible to let users toggle architecture via meta-packages.

Relates to #13
Specifying this meta-package toggles support for ARM64 images, for
example:

    # Pull a default x86_64 image
    docker pull nixery.dev/hello

    # Pull an ARM64 image
    docker pull nixery.dev/arm64/hello
Imports the package set twice in the builder expression: Once
configured for the target system, once configured for the native
system.

This makes it possible to fetch the actual image contents for the
required architecture, but use local tools to assemble the symlink
layer and metadata.
@tazjin
Copy link
Owner Author

tazjin commented Nov 7, 2019

@vielmetti: This should work now, it'd be great if you could give it a go!

@tazjin tazjin changed the title (WIP) Introduce support for building ARM architecture images Introduce support for building ARM architecture images Nov 7, 2019
@tazjin tazjin force-pushed the feat/arm64-support branch 2 times, most recently from bd674de to 5e41887 Compare November 9, 2019 14:47
@tazjin tazjin force-pushed the feat/arm64-support branch 2 times, most recently from b2d3b8f to 4fec64c Compare November 9, 2019 15:15
Nixery itself is built with the buildLayeredImage system, which takes
some time to create large numbers of layers.

This adjusts the default number of image layers from 96 to 20.

Additionally Nixery's image is often loaded with `docker load -i`,
which ignores layer cache hits anyways.

Additionaly the CI build is configured to use only 1, which speeds up
CI runs.
@tazjin
Copy link
Owner Author

tazjin commented Nov 9, 2019

Builds now run on both platforms and the integration test also runs images on both platforms.

@tazjin tazjin merged commit 358d37e into master Nov 9, 2019
@tazjin tazjin deleted the feat/arm64-support branch November 9, 2019 15:36
@vielmetti
Copy link

@tazjin - able to confirm that for the most part on simpler derivations this works exactly as expected. #94 has one instance of a package (gocryptfs) which fails to build with a 500 error, but that appears to be something package-specific.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

arm64 support via meta-packages
2 participants