@@ -161,25 +161,28 @@ and setup-time config writes through `openclaw-gateway` with
161161
162162The setup script accepts these optional environment variables:
163163
164- | Variable | Purpose |
165- | ------------------------------------------ | --------------------------------------------------------------------- |
166- | ` OPENCLAW_IMAGE ` | Use a remote image instead of building locally |
167- | ` OPENCLAW_IMAGE_APT_PACKAGES ` | Install extra apt packages during build (space-separated) |
168- | ` OPENCLAW_IMAGE_PIP_PACKAGES ` | Install extra Python packages during build (space-separated) |
169- | ` OPENCLAW_EXTENSIONS ` | Pre-install plugin dependencies at build time (space-separated names) |
170- | ` OPENCLAW_EXTRA_MOUNTS ` | Extra host bind mounts (comma-separated ` source:target[:opts] ` ) |
171- | ` OPENCLAW_HOME_VOLUME ` | Persist ` /home/node ` in a named Docker volume |
172- | ` OPENCLAW_SANDBOX ` | Opt in to sandbox bootstrap (` 1 ` , ` true ` , ` yes ` , ` on ` ) |
173- | ` OPENCLAW_SKIP_ONBOARDING ` | Skip the interactive onboarding step (` 1 ` , ` true ` , ` yes ` , ` on ` ) |
174- | ` OPENCLAW_DOCKER_SOCKET ` | Override Docker socket path |
175- | ` OPENCLAW_DISABLE_BONJOUR ` | Disable Bonjour/mDNS advertising (defaults to ` 1 ` for Docker) |
176- | ` OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS ` | Disable bundled plugin source bind-mount overlays |
177- | ` OTEL_EXPORTER_OTLP_ENDPOINT ` | Shared OTLP/HTTP collector endpoint for OpenTelemetry export |
178- | ` OTEL_EXPORTER_OTLP_*_ENDPOINT ` | Signal-specific OTLP endpoints for traces, metrics, or logs |
179- | ` OTEL_EXPORTER_OTLP_PROTOCOL ` | OTLP protocol override. Only ` http/protobuf ` is supported today |
180- | ` OTEL_SERVICE_NAME ` | Service name used for OpenTelemetry resources |
181- | ` OTEL_SEMCONV_STABILITY_OPT_IN ` | Opt in to latest experimental GenAI semantic attributes |
182- | ` OPENCLAW_OTEL_PRELOADED ` | Skip starting a second OpenTelemetry SDK when one is preloaded |
164+ | Variable | Purpose |
165+ | ----------------------------------------------- | --------------------------------------------------------------------- |
166+ | ` OPENCLAW_IMAGE ` | Use a remote image instead of building locally |
167+ | ` OPENCLAW_IMAGE_APT_PACKAGES ` | Install extra apt packages during build (space-separated) |
168+ | ` OPENCLAW_IMAGE_PIP_PACKAGES ` | Install extra Python packages during build (space-separated) |
169+ | ` OPENCLAW_EXTENSIONS ` | Pre-install plugin dependencies at build time (space-separated names) |
170+ | ` OPENCLAW_DOCKER_BUILD_NODE_OPTIONS ` | Override the local source-build Node options |
171+ | ` OPENCLAW_DOCKER_BUILD_TSDOWN_MAX_OLD_SPACE_MB ` | Override the local source-build tsdown heap in MB |
172+ | ` OPENCLAW_DOCKER_BUILD_SKIP_DTS ` | Skip declaration output during runtime-only local image builds |
173+ | ` OPENCLAW_EXTRA_MOUNTS ` | Extra host bind mounts (comma-separated ` source:target[:opts] ` ) |
174+ | ` OPENCLAW_HOME_VOLUME ` | Persist ` /home/node ` in a named Docker volume |
175+ | ` OPENCLAW_SANDBOX ` | Opt in to sandbox bootstrap (` 1 ` , ` true ` , ` yes ` , ` on ` ) |
176+ | ` OPENCLAW_SKIP_ONBOARDING ` | Skip the interactive onboarding step (` 1 ` , ` true ` , ` yes ` , ` on ` ) |
177+ | ` OPENCLAW_DOCKER_SOCKET ` | Override Docker socket path |
178+ | ` OPENCLAW_DISABLE_BONJOUR ` | Disable Bonjour/mDNS advertising (defaults to ` 1 ` for Docker) |
179+ | ` OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS ` | Disable bundled plugin source bind-mount overlays |
180+ | ` OTEL_EXPORTER_OTLP_ENDPOINT ` | Shared OTLP/HTTP collector endpoint for OpenTelemetry export |
181+ | ` OTEL_EXPORTER_OTLP_*_ENDPOINT ` | Signal-specific OTLP endpoints for traces, metrics, or logs |
182+ | ` OTEL_EXPORTER_OTLP_PROTOCOL ` | OTLP protocol override. Only ` http/protobuf ` is supported today |
183+ | ` OTEL_SERVICE_NAME ` | Service name used for OpenTelemetry resources |
184+ | ` OTEL_SEMCONV_STABILITY_OPT_IN ` | Opt in to latest experimental GenAI semantic attributes |
185+ | ` OPENCLAW_OTEL_PRELOADED ` | Skip starting a second OpenTelemetry SDK when one is preloaded |
183186
184187The official Docker image does not ship Homebrew. During onboarding, OpenClaw
185188hides brew-only skill dependency installers when it is running in a Linux
@@ -190,6 +193,15 @@ or installed manually. For dependencies available from Debian packages, use
190193For Python dependencies, use ` OPENCLAW_IMAGE_PIP_PACKAGES ` . This runs
191194` python3 -m pip install --break-system-packages ` during the image build, so pin
192195package versions and use only package indexes you trust.
196+ Source builds default ` OPENCLAW_DOCKER_BUILD_NODE_OPTIONS ` to
197+ ` --max-old-space-size=8192 ` and leave
198+ ` OPENCLAW_DOCKER_BUILD_TSDOWN_MAX_OLD_SPACE_MB ` unset so the tsdown wrapper can
199+ respect container memory limits. They also default
200+ ` OPENCLAW_DOCKER_BUILD_SKIP_DTS=1 ` because runtime images prune declaration
201+ files after build. If Docker reports ` ResourceExhausted ` , `cannot allocate
202+ memory` , or aborts during ` tsdown`, increase the Docker builder memory limit or
203+ retry with smaller explicit heaps, for example
204+ ` OPENCLAW_DOCKER_BUILD_NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_DOCKER_BUILD_TSDOWN_MAX_OLD_SPACE_MB=4096 ` .
193205
194206Maintainers can test bundled plugin source against a packaged image by mounting
195207one plugin source directory over its packaged source path, for example
0 commit comments