Conversation
added 2 commits
September 29, 2026 16:06
contrib/ci/Dockerfile bakes everything .github/scripts/setup.sh installs
at job time, plus a pre-synced uv venv, the cargo registry, poetry, and
the bitcoind/elementsd binaries under /opt, so a test run does no apt or
network setup. It also closes the gaps between ubuntu:24.04 and GitHub's
runner VM that tests trip over: clang's sanitizer runtime (only a
Recommends), the minimized image's man stub, and a uid-1000 user that
collides with the test user.
This is an interim image: it is to be replaced by one built from the
repository's Nix flake, and this file removed when that lands.
Build it from the repository root to reproduce a CI failure locally:
docker build -t cln-ci -f contrib/ci/Dockerfile .
Changelog-None
cln-grpc vendors its own protoc as a build-dependency, but only since 608f695. Branches cut from an older base -- release branches and the backports that target them -- still invoke the system protoc, and fail with "Could not find `protoc`" while building cln-grpc. .github/scripts/setup.sh never installed it either. That went unnoticed because the GitHub runner image ships protobuf-compiler, so the system protoc was always there without anyone asking for it; a from-scratch image has to ask. Changelog-None
cdecker
force-pushed
the
ci/interim-dockerfile
branch
from
September 29, 2026 14:13
882009d to
278b463
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
contrib/ci/Dockerfile, an image that bakes in everything.github/scripts/setup.shinstalls at job time, plus a pre-synced uv venv, the cargo registry and thebitcoind/elementsdbinaries. A test run then does no apt or network setup, and a CI failure can be reproduced locally with:It also closes the gaps between
ubuntu:24.04and GitHub's runner image that tests trip over: clang's sanitizer runtime, the minimized image'smanstub, a uid-1000 user that collides with the test user, andprotobuf-compiler. The last one matters for branches cut before608f6952ea, which still buildcln-grpcagainst the systemprotoc.This is an interim image. It is to be replaced by one built from the repository's Nix flake, and this file will be removed when that lands. The file header says the same. GitHub Actions does not use it; it exists so the suite can run in a container built from the tree under test.
Two commits: the image, and the
protobuf-compileraddition.The image now pins Python 3.12 rather than 3.10, ahead of #9588, which moves the GitHub workflows to 3.12 as Python 3.10 reaches end-of-life.