keeline 0.1.4

Metadata-driven CLI for validating, rendering, and releasing Debian-based runtime container images.
Documentation

Keeline

Keeline provides Debian-based runtime images and a minimal scratch tool image published to GHCR, with tino integrated as the default PID 1 init process and salus bundled for health checks across the image line.

Images

Current image packages:

  • ghcr.io/lvillis/keeline-debian
  • ghcr.io/lvillis/keeline-jdk
  • ghcr.io/lvillis/keeline-scratch

Current published image lines:

  • ghcr.io/lvillis/keeline-debian:13
  • ghcr.io/lvillis/keeline-debian:13-slim
  • ghcr.io/lvillis/keeline-jdk:17-trixie
  • ghcr.io/lvillis/keeline-jdk:17-trixie-slim
  • ghcr.io/lvillis/keeline-jdk:21-trixie
  • ghcr.io/lvillis/keeline-jdk:21-trixie-slim
  • ghcr.io/lvillis/keeline-jdk:8u372-trixie
  • ghcr.io/lvillis/keeline-jdk:8u372-trixie-slim
  • ghcr.io/lvillis/keeline-scratch:1

Tag Rules

  • Package names express the image family.
  • Image tags express version and variant.
  • Debian tags use forms like 13 and 13-slim.
  • JDK tags use forms like 21-trixie, 21.0.10-trixie, 8u372-trixie, and 8u372-trixie-slim.
  • Scratch tags currently use 1.
  • latest is not published.

Usage

Examples:

docker pull ghcr.io/lvillis/keeline-debian:13
docker pull ghcr.io/lvillis/keeline-jdk:21-trixie
docker pull ghcr.io/lvillis/keeline-jdk:8u372-trixie
docker pull ghcr.io/lvillis/keeline-scratch:1

For strongly reproducible deployments, pin by digest.

Scope

  • Debian images provide a clean Debian 13 base.
  • JDK images provide Debian 13 based Java runtimes built for stable consumption.
  • Scratch images provide a minimal FROM scratch base containing only tino and salus.
  • All images include tino at /sbin/tino and start through ENTRYPOINT ["/sbin/tino", "-g", "-s", "--"].
  • All images include salus at /bin/salus for downstream HEALTHCHECK and Kubernetes exec probes.
  • JDK slim images reduce runtime packages and use C.UTF-8 instead of generated en_US.UTF-8 locales.
  • The project keeps image families separate instead of mixing them into one package with complex tags.