feat: add multi-arch Dockerfiles and scripts #1712
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Adding Dockerfiles and Makefile targets to build static binaries for amd64 and arm64, produce archives with those binaries and build minimal docker images.
It uses pre-built container images to ensure stable build environment - DFs and build script are located in ./docker/base/
To build the binary it mounts current working directory (nwaku repo) and then remounts
vendor
andbuild
with architecture specific folders to avoid conflicts (e.g. when buildingarm64
, dependencies will be cloned intovendor-arm64
and result will be located inbuild/arm64/
)EDIT: There are targets for packing up the binaries (
make dist-$(ARCH)
) and building final container images (make dist-container-$(ARCH)
)I've also added an experimental
make release-notes
which uses sv4git to generate changelog/release notes based on semantic commit messagesMissing
Changes
No changes to existing code, only additions for now
How to test
If you want to run everything, you can execute
It will
dist/
folderKeep in mind that compiling for arm64 on non-arm hardware takes significantly longer than building amd64 on amd64