Yeah — that’s expected with the OpenClaw Docker image.
The default container is security‑first and runs as the non-root node user (uid 1000), which means:
- you can’t
apt-get install …at runtime (no root) - you won’t have Homebrew (and you generally shouldn’t try to add it)
- “global” npm installs (
npm i -g …) often fail because they try to write to system paths
Docs: https://docs.openclaw.ai/install/docker (see “Power-user / full-featured container (opt-in)” + “Install extra apt packages”)
What to do (recommended)
Bake deps into the image at build time, then rebuild:
export OPENCLAW_DOCKER_APT_PACKAGES="ffmpeg build-essential git curl jq"
./docker-setup.sh