Introducing apko: bringing distroless nirvana to Alpine Linux
Earlier today, Chainguard released version 0.1 of our apko tool. This tool allows for the composition of so-called “distroless” images from APK-based software distributions, such as Alpine Linux, using a declarative configuration. Unlike the traditional distroless tooling, apko enables the creation of minimal, small-attack-surface images without the complications of relying on Bazel. In short, apko streamlines the process for creating declarative container images, building on our efforts to improve the security and transparency of the software supply chain.
What is Distroless?
A distroless image contains only the necessary components needed to support an application. Distroless images benefit from significantly reduced attack surface, omitting unnecessary package management capabilities, and occasionally even a shell. In the container space, the primary framework for creating these distroless images has been Google’s distroless project.
While Google’s distroless project has given people effective tools to make lightweight containers with minimal attack surface, these capabilities come at a significant cost in complexity. Traditionally, distroless is built using Bazel, a complicated build system designed for building gigantic monolithic applications, which means that many users in the container ecosystem avoid distroless and build images on the official Alpine or Debian base image instead, which both have unnecessary attack surface for most applications.
What is apko?
APK is the package manager traditionally used by Alpine Linux, and the apko tool is a declarative APK-based OCI image builder. The theory of operation behind it is that a user of apko will take code artifacts built as APK packages and combine them with distribution packages to create a container that has only the components needed to support the assembled application. This can also be used with other ecosystem tools such as Google’s ko utility, by producing a customized base image for other tools to consume.
Apko features include:
OCI image builds for APK-based distributions
100% declarative configuration
Sub-second image build times
These features combined mean apko helps developers win with a faster and more easy to reproduce build process.
Chainguard is working to enhance the distroless ecosystem with a full suite of tools to create and manage build artifacts as APK packages, which can then be used as inputs to apko in order to assemble container images. The separation of concerns will bring new capabilities to the distroless ecosystem, such as the creation of high quality SBOMs at build time, while providing the flexibility for customers to build processes that work best for them.In closing, the next generation of distroless technologies in development at Chainguard will enable the secure, scalable software factories of the future, and apko is the first step in building this future. Check out the GitHub project today, leave feedback, report bugs, and contact us if you have any questions!
Share this article
Verwandte Artikel
- Maschinenbau
You can't trust what you can't see: How we keep an eye on a fleet of AI agents
Taylor Bloom, Senior Technical Program Manager
- Maschinenbau
This Shit is Hard: Getting software to run on robots (and then getting the robots to work)
Eric Timmons, Chief Engineer, Asylon Robotics
- Maschinenbau
This Shit is Hard: How AI keeps our code on standard
Maxime Gréau, Principal Software Engineer
- Maschinenbau
Faster than the advisory
Patrick Smyth, Principal Developer Relations Engineer, and Adrian Mouat, Staff Developer Relations Engineer
- Maschinenbau
The hardest fork
Dan Lorenc, Co-founder and CEO
- Maschinenbau
Building the business case for a secure open source supply chain
Adeel Saeed, SVP, CTO, Global Cyber Resilience and Technology Strategy and Execution, Kyndryl