The Big Picture - chainguard-dev/apko - apk

Apko is an open-source command-line tool used for building container images using a declarative language based on YAML. It utilizes the APK package format and is inspired by the ko build tool. Apko is designed to be fast, fully reproducible, and produce small images that only contain what’s needed by the application. It also supports creating Software Bill of Materials (SBOM) and using the s6 supervision suite to run multiple processes in a container.

APK-CLI, on the other hand, is a separate command-line interface tool for downloading APK files directly from the command line. It can save time and effort for developers who need to download APK files quickly and easily.

Both apko and APK-CLI are part of the open-source toolkit developed by Chainguard. While apko is used for building container images, APK-CLI is used for downloading APK files. They can be used together to streamline the Android development process.

When using apko, you define your packages declaratively using a YAML file, and it is compatible with Alpine-based systems. It is not recommended to mix Alpine and Wolfi package repositories when creating your melange build environment. Signing packages with a melange key is not mandatory.

For more information on using apko, you can refer to the Chainguard Academy resources, including the apko FAQs, YAML reference, and getting started guide. Additionally, all apko releases are signed using Cosign, and you can verify the signatures using the cosign tool or Rekor transparency log.