Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/witchery-project/witchery
build distroless images with alpine tools
https://github.com/witchery-project/witchery
Last synced: 10 days ago
JSON representation
build distroless images with alpine tools
- Host: GitHub
- URL: https://github.com/witchery-project/witchery
- Owner: witchery-project
- License: other
- Created: 2021-09-09T07:53:51.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-05-17T15:07:34.000Z (over 2 years ago)
- Last Synced: 2024-08-01T12:27:50.284Z (3 months ago)
- Language: Shell
- Size: 9.77 KB
- Stars: 128
- Watchers: 7
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING.md
Awesome Lists containing this project
README
# witchery
Build distroless images with `apk`!
Witchery is a collection of tools which can be composed to build
distroless images. It is intended to be portable for use with
any package management tooling, but is primarily focused on apk-based
distributions at the moment, such as Alpine.It is also designed to be easy to use with any other third-party
tooling in a fully composable fashion, e.g. with Docker.## Features
### Uses native package manager to assemble the image
Your application payload is converted into an `apk` package or
equivalent. This allows for the use of the package manager to
assemble the image.Where possible, witchery uses the pre-existing packaging tools
for a base distribution. For example, it uses `abuild` to generate
the `apk` package with your payload. This allows for leveraging
the automatic dependency generation features of `abuild` to
simplify the process of gathering dependencies.### Friendly for use with Docker
Witchery is designed to be easy to use with Docker. Some examples
are available in the `examples/` directory.## Tools
* **witchery-buildapk** - builds an APK out of an arbitrary
filesystem* **witchery-compose** - composes an image, given a set of APKs,
package names, and repositories as inputs## Caveats
You need to have a signing key generated to sign the intermediary
artifacts. Use `abuild-keygen -na` to get one.## See Also
* [alpine-make-rootfs](https://github.com/alpinelinux/alpine-make-rootfs),
build Alpine rootfs with an installation script. Witchery's main difference
is that it can drive `abuild`, while alpine-make-rootfs requires dependencies
to be specified manually.* Google's [distroless](https://github.com/GoogleContainerTools/distroless) project,
same concept as witchery, but with glibc, and the bazel build system.