Home / Companies / StackHawk / Blog / Post Details
Content Deep Dive

Building Multi-Architecture Docker Images in CICD

Blog post from StackHawk

Post Details
Company
Date Published
Author
Omar Alkhalili
Word Count
1,094
Language
English
Hacker News Points
-
Summary

StackHawk has introduced support for arm64 architecture by releasing packaged executables and Docker images for its scanning engine, enhancing its software build process to accommodate future computer architectures. This development involved adapting the StackHawk CLI and Docker images to function on arm64, using tools like Kotlin, Clikt, and Gradle, which enabled multi-architecture compatibility through Java's cross-platform capabilities. The process required leveraging Docker's BuildKit toolkit, using the –platform flag, and employing the binfmt_misc with QEMU emulator for cross-platform builds, especially in Linux and CI environments. The distinction between registries, repositories, images, and manifests was crucial, as these elements facilitated the storage, identification, and retrieval of architecture-specific software versions. By using Gradle tasks within the CI/CD pipeline, StackHawk automated the creation of multi-architecture images, enabling development on various platforms, including Apple's M1 silicon, and providing a foundation for future architectural expansions. The initiative underscores the importance of understanding Docker's handling of multi-architecture builds and aims to guide others in developing software compatible with multiple platforms.