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
- Verify the base image builds successfully in the CI base images pipeline
- 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