opinionated Docker builder image for downstream projects that want a modern Linux build environment without maintaining their own bootstrap layer
- C and C++ toolchains, CMake, Ninja, Flex, Automake, gettext and pkg-config
- Python via uv
- OpenJDK and Maven
- Bun
- Rust and Cargo
sdplus the helper scripts fromsrc/userBin
The image is meant to be used as an ONBUILD base. During a downstream build it looks for these scripts inside the child build context and executes them in order:
build/build.bashbuild/build1.bashbuild/build2.bash…
Each script runs with /build as the working directory. The downstream build context is mounted read-only at /context, so build scripts can copy or compile files from there without baking the raw source tree into the base image layers.
FROM jaidchen/builder:latest#!/bin/bash
set -o errexit -o pipefail
cp --recursive /context/. /build/project
cd /build/project
bun install --frozen-lockfile
bun run buildbin/buildbuilds and loads the localbuilder-devimage.bin/buildFsexports the built image filesystem. On Windows it writesdist/fs.tar, because NTFS cannot represent all Linux filesystem entries.bin/runbuilds and runs the local dev container.- The helper scripts can fall back to Docker Desktop’s standalone
docker-buildx.exeanddocker-compose.exebinaries if thedockersubcommands are not wired up in the current shell.
- BuildKit is required.
- The default image variants are published from the GitHub workflow matrix in
.github/workflows/pushDocker.yml. - Local helper scripts live in
./bin. - The default Bun version is pinned to 1.3.13.