docker: per-client images + standalone orchestrator image via build matrix#10
Merged
Conversation
…atrix Replace the single combined image with one multi-target Dockerfile that builds a separate image per engine (lighthouse, teku, lodestar, nimbus, grandine) plus a standalone orchestrator image, each tagged :<thing>-latest and :<thing>-<sha>. A GitHub Actions matrix builds/pushes each in its own parallel job (fail-fast off, per-image gha cache, init only that job's submodule). Orchestrator gains clean --help/--version exit codes; k8s benchmark points at :lighthouse-latest.
…lone teku submodule when in-container .git pointer is invalid The teku wrapper's record compact constructor used committeeBits = requireNonNull(committeeBits), which Error Prone rejects as a self-assignment, breaking :fcr-simulator-engine:compileJava (and the docker build). Use a plain null check. Also make the teku builder stage reclone the pinned teku SHA when the COPYed submodule .git pointer is unusable inside the build container. Verified: docker buildx build --target teku and --target grandine both build + --manifest-json OK.
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.
Replaces the single combined image with one multi-target Dockerfile that builds a separate image per engine (lighthouse, teku, lodestar, nimbus, grandine) plus a standalone orchestrator image, each pushed as
:<thing>-latestand:<thing>-<sha>. A GitHub Actions matrix builds and pushes each in its own parallel job (fail-fast off, per-image gha cache, initialising only that job's submodule), so cross-client runs can fan out one job per client.Locally built + smoke-tested: orchestrator, lodestar, nimbus images (manifest + orchestrator->engine wiring; nimbus runtime libs confirmed via ldd). lighthouse/teku/grandine pass
docker build --checkand get verified by the matrix on merge (teku mirrors the previous working image). Merging triggers the workflow to build/push all six tag sets.