Skip to content

docker: adopt the dbuild.sh developer build container - #312

Merged
daniel-rossier merged 1 commit into
mainfrom
feat/dbuild-build-container
Aug 10, 2026
Merged

docker: adopt the dbuild.sh developer build container#312
daniel-rossier merged 1 commit into
mainfrom
feat/dbuild-build-container

Conversation

@daniel-rossier

@daniel-rossier daniel-rossier commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Brings the build-env/dbuild.sh model (validated in the pos_sol, edgem1 and micofe trees) into so3.

  • docker/build-env carries ONLY the environment: both Arm 64-bit toolchains (including the bare-metal aarch64-none-elf the SO3/AVZ kernels need and that hand-provisioned hosts routinely miss), the 32-bit apt toolchains, and host packages from packages.txt as the single source of truth. No project source in the image.
  • scripts/dbuild.sh is the single entry point: --build makes the so3-build:1.0 image; a bare invocation opens an interactive shell with env.sh sourced; any front-end script runs as-is (dbuild.sh build.sh bsp-linux, dbuild.sh st.sh -d — X11 forwarded). The repository is bind-mounted at its own absolute path (host and container builds share one build/tmp), and the container runs as the calling host user (HOST_UID/GID → setpriv).
  • Caller environment variables are not forwarded — pass them through the command: dbuild.sh env IB_FORCE_ATTACH=1 build.sh ….
  • The existing docker/ images are untouched (CI Dockerfile.toolchains/Dockerfile.env, lvperf perf-rig images); README and build_system.rst now point developers at dbuild.

Validated: image builds (layer-cached against the sibling trees' images), front-end scripts run inside the container against this tree, and the same four files drive the micofe v6.2.4 chain (bsp-linux + bsp-capsules + deploys + QEMU boot) entirely through the container.

Bring the build-env/dbuild.sh model (validated in the pos_sol, edgem1 and
micofe trees) into so3: docker/build-env carries ONLY the environment —
both Arm 64-bit toolchains (including the bare-metal aarch64-none-elf the
SO3/AVZ kernels need and that hand-provisioned hosts routinely miss), the
32-bit apt toolchains, and the host packages from packages.txt as single
source of truth. The repository stays on the host, bind-mounted at its
own absolute path so host and container builds share one build/tmp, and
the container runs as the calling host user via an entrypoint that maps
HOST_UID/HOST_GID and drops privileges with setpriv.

scripts/dbuild.sh is the one entry point: --build makes the image, a bare
invocation opens an interactive shell with env.sh sourced, and any
front-end script runs as-is (dbuild.sh build.sh bsp-linux, dbuild.sh
st.sh -d — X11 cookie and display are forwarded). Caller environment
variables are not forwarded; pass them through the command
(dbuild.sh env IB_FORCE_ATTACH=1 ...).

The existing docker/ images are untouched: Dockerfile.toolchains and
Dockerfile.env keep serving the CI, the lvperf images the LVGL perf rig.
README and the build_system doc point developers at dbuild.sh.

Validated: image builds, and front-end scripts run inside the container
against this tree (the same files drive the micofe v6.2.4 chain end to
end, built and deployed entirely through the container).
@daniel-rossier
daniel-rossier merged commit efc72cd into main Aug 10, 2026
4 of 6 checks passed
@daniel-rossier
daniel-rossier deleted the feat/dbuild-build-container branch August 10, 2026 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant