base images: add client libs base image

What

This MR adds a new base image (client-lib-dependencies-debian) for client library
testing and development.

Why

Having a dedicated base image ensures consistent build environments and reduces build time on merge result pipelines by avoiding rebuilding dependencies from scratch on every run.

How

Commit 1 — shared build scripts:

  • install-kaitai.sh: builds kaitai-struct-compiler from source
  • install-nvm.sh: installs Node Version Manager
  • install_build_deps.js.sh: installs Node.js via NVM and npm dependencies

Commit 2 — Debian Dockerfile and CI job:

  • Adds Dockerfile.debian-client-libs (based on debian:trixie) with kaitai, Node.js, java, and xxd
  • Registers the build job in the base images pipeline (AMD64 only)
  • Registers the image reference in tezos_ci.ml for use by downstream jobs

A separate MR will switch the kaitai CI jobs to use this new base image once it is published.

Manually testing the MR

  1. Verify the base image builds successfully in the CI base images pipeline
  2. Pull and test the image:
  docker pull us-central1-docker.pkg.dev/nl-gitlab-runner/registry/tezos/tezos/client-
  lib-dependencies-debian:trixie-abate-base-client-libs
  docker run -it --rm <image>
  . ~/.nvm/nvm.sh && node --version && kaitai-struct-compiler --version && java
  --version && xxd --version
$ docker pull us-central1-docker.pkg.dev/nl-gitlab-runner/registry/tezos/tezos/client-lib-dependencies-debian:trixie-abate-base-client-libs
trixie-abate-base-client-libs: Pulling from nl-gitlab-runner/registry/tezos/tezos/client-lib-dependencies-debian
[...]
Digest: sha256:478029be70876be7ad9494b5b4590c69f0f507376f8d93f650615b5cac5bfabc
Status: Downloaded newer image for us-central1-docker.pkg.dev/nl-gitlab-runner/registry/tezos/tezos/client-lib-dependencies-debian:trixie-abate-base-client-libs
us-central1-docker.pkg.dev/nl-gitlab-runner/registry/tezos/tezos/client-lib-dependencies-debian:trixie-abate-base-client-libs

nomadic@p2p-monitoring:~$ docker run -it --rm us-central1-docker.pkg.dev/nl-gitlab-runner/registry/tezos/tezos/client-lib-dependencies-debian:trixie-abate-base-client-libs

tezos@59e2a237ed73:~$ . ~/.nvm/nvm.sh && node --version && kaitai-struct-compiler --version && java --version && xxd --version
v18.18.2
kaitai-struct-compiler 0.11-SNAPSHOT
openjdk 21.0.10 2026-01-20
OpenJDK Runtime Environment (build 21.0.10+7-Debian-1deb13u1)
OpenJDK 64-Bit Server VM (build 21.0.10+7-Debian-1deb13u1, mixed mode, sharing)
xxd 2024-12-07 by Juergen Weigert et al.
tezos@59e2a237ed73:~$ 
Edited by Pietro Abate

Merge request reports

Loading