-
-
Notifications
You must be signed in to change notification settings - Fork 68.9k
[Bug]: A2UI bundle missing from Docker image — canvas/a2ui broken #12878
Description
Summary
The Docker image builds successfully but ships without a2ui.bundle.js, making canvas A2UI non-functional. The index.html references <script src="a2ui.bundle.js"></script> but the file doesn't exist.
Root cause
In v2026.1.29, generated A2UI bundles were removed from git tracking ("Build: bundle A2UI assets during build and stop tracking generated bundles"). The build script scripts/bundle-a2ui.sh was updated with a fallback:
if [[ ! -d "$A2UI_RENDERER_DIR" || ! -d "$A2UI_APP_DIR" ]]; then
echo "A2UI sources missing; keeping prebuilt bundle."
exit 0
fiHowever, .dockerignore excludes both apps/ and vendor/, so the source directories (apps/shared/.../CanvasA2UI and vendor/a2ui/renderers/lit) are never copied into the Docker build context. The script hits the fallback and exits successfully — but there is no prebuilt bundle to "keep", because it was removed from git.
The Dockerfile even sets OPENCLAW_A2UI_SKIP_MISSING=1 during build, confirming awareness of the issue, but the end result is a Docker image with no a2ui.bundle.js at all.
Steps to reproduce
docker run --rm -it ghcr.io/openclaw/openclaw:latest /bin/bash
find / -name 'a2ui.bundle.js' 2>/dev/null
# No output — file doesn't existExpected behavior
a2ui.bundle.js should be present in the Docker image at src/canvas-host/a2ui/a2ui.bundle.js, allowing A2UI canvas to function.
Suggested fix
Either:
- Update
.dockerignoreto include the required source dirs (similar to what was suggested in [Bug]: #2593), OR - Pre-build the bundle in CI and include it in the npm/Docker artifact, OR
- Add a Dockerfile step that builds the bundle before the main
pnpm build
Environment
- OpenClaw version: 2026.2.6
- Install method: Docker (
ghcr.io/openclaw/openclaw:latest) - OS: Linux (Kubernetes)
Related
- [Bug]: #2593 (older variant where the build failed instead of silently skipping)