Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/knut

containers/bifrost/Containerfile

# bifrost (the `bifrost-doris` build) — Iceberg commits into Apache Doris, the
# image the Kubernetes package runs. `bifrost doris k8s --image <this> --out DIR`
# renders the StatefulSet + Secret + cursor volume that start it; the systemd
# package is the same binary installing itself (`bifrost doris install`).
#
# Like containers/knut-flight: the binary is built by the Build Thing (row
# `bifrost-doris`, inside the pinned toolchain container — never on the host)
# and copied into a slim runtime base. The context is a staging dir holding the
# release binary as `bifrost`:
#
#   dwarves buildthing knut --variant bifrost-doris      # → target/release/bifrost
#   mkdir -p ctx && cp <target>/release/bifrost ctx/
#   podman build -t bifrost-doris:<ver> -f containers/bifrost/Containerfile ctx
#
# The same Containerfile packages every bifrost row — only the binary differs.
# Pick the smallest build that has what the site runs:
#
#   bifrost-doris               Doris + FalkorDB verbs, generic REST catalog
#   bifrost-falkordb            `bifrost falkordb k8s`, no Doris, generic REST
#   bifrost-falkordb-<vendor>   + ONE catalog: aistor|polaris|unity|gravitino|grpc
#   bifrost-full                every sink, every catalog
#
#   dwarves buildthing knut --variant bifrost-falkordb-polaris
#   podman build -t bifrost-falkordb-polaris:<ver> -f containers/bifrost/Containerfile ctx
#
# Skidbladnir renders no ConfigMap, so a mapping file the k8s package names must
# be COPIED into the image at an absolute path (`bifrost falkordb k8s` refuses a
# relative one).
#
# Config is the command line the k8s package renders; secrets come from the
# Secret as env only: MINIO_ACCESS_KEY, MINIO_SECRET_KEY, DORIS_USER,
# DORIS_PASSWORD, and optionally BIFROST_S3_CA_PEM (the CA as PEM text),
# BIFROST_FALKOR_URL, BIFROST_CATALOG_CREDENTIAL, BIFROST_CATALOG_TOKEN.
# The cursor lives on the volume at /var/lib/bifrost.

ARG DEBIAN_TAG=trixie-slim
FROM docker.io/library/debian:${DEBIAN_TAG} AS runtime

RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates \
    && rm -rf /var/lib/apt/lists/* \
    && useradd --system --no-create-home --uid 10056 bifrost \
    && mkdir -p /var/lib/bifrost && chown bifrost /var/lib/bifrost

COPY bifrost /usr/local/bin/bifrost
RUN chmod 0755 /usr/local/bin/bifrost

USER bifrost
WORKDIR /var/lib/bifrost
ENTRYPOINT ["/usr/local/bin/bifrost"]