第一阶段在 Windows宿主机上准备资源你需要先在 Windows 上下载好源码和构建镜像所需的基础文件。1. 下载 OpenClaw 源码OpenClaw 的 GitHub 仓库通常包含构建 Docker 镜像所需的Dockerfile。访问 GitHub在 Windows 浏览器打开 OpenClaw GitHub 仓库。下载源码点击绿色的Code按钮 -Download ZIP。保存位置假设你把它下载到了D:\Downloads\openclaw-main.zip。2. (关键) 准备基础镜像OpenClaw 的Dockerfile通常基于node:22-bookworm或类似的 Linux 镜像。因为 WSL 无法联网拉取这个基础镜像你必须在 Windows 上先把它拉下来然后导出成文件。打开Windows PowerShell非管理员即可执行# 1. 拉取基础镜像 (请查看 OpenClaw 的 Dockerfile 第一行确认具体是哪个镜像这里以 node:22 为例) docker pull node:22-bookworm # 2. 将该镜像导出为 tar 包 docker save -o D:\Downloads\base-node22.tar node:22-bookworm 第二阶段将文件传输进 WSL我们需要把刚才下载的文件“搬运”到 WSL 的文件系统中。打开 WSL 终端。进入挂载目录Windows 的磁盘通常挂载在/mnt/下。# 进入 D 盘假设你文件在 D 盘 cd /mnt/d/Downloads # 确认文件是否存在 ls # 你应该能看到 openclaw-main.zip 和 base-node22.tar复制到 WSL 家目录# 创建工作目录 mkdir -p ~/build_env cd ~ # 复制文件过来 cp /mnt/d/Downloads/openclaw-main.zip ~/build_env/ cp /mnt/d/Downloads/base-node22.tar ~/build_env/️ 第三阶段在 WSL 内离线安装现在回到 WSL 的纯离线环境中进行操作。1. 导入基础镜像既然 WSL 连不上网我们就把刚才传进来的tar包加载到 Docker 里。# 导入镜像 sudo docker load -i ~/build_env/base-node22.tar # 验证是否导入成功 sudo docker images # 此时你应该能看到 node:22-bookworm 在列表里2. 解压源码cd ~/build_env # 安装 unzip (如果 WSL 极简安装没带这个命令需 apt install unzip若 apt 也挂了需同样方式下载 unzip 包) unzip openclaw-main.zip cd openclaw-main3. 修改 Dockerfile (关键步骤)因为基础镜像是你本地导入的我们需要确保Dockerfile能识别它并且切断构建过程中试图联网的行为如apt-get update或npm install。查看 Dockerfilecat Dockerfile修改策略确认基础镜像名称确保FROM node:22-bookworm这一行和你刚才导入的镜像名称一致。关于依赖安装如果Dockerfile里有RUN npm install在离线环境下一定会失败。解决方案你需要在 Windows 上把node_modules下载好非常麻烦或者修改 Dockerfile注释掉联网下载的步骤改为手动在 WSL 里安装依赖见下文替代方案。 替代方案直接在 WSL 内运行推荐内网环境既然内网构建 Docker 镜像非常痛苦主要是依赖包下载问题在内网环境下最稳妥的方式其实是不在 WSL 里构建镜像而是直接在 WSL 里安装 Node.js 运行 OpenClaw。这样可以完全绕过 Docker 的构建过程。步骤如下在 Windows 下载 Node.js 离线包去 Node.js 官网下载 Linux 二进制包 (.tar.xz)例如node-v22.x.x-linux-x64.tar.xz。传到 WSL 的/mnt/d/Downloads/。在 WSL 安装 Node.jscd /mnt/d/Downloads # 解压 tar -xf node-v22.*.tar.xz # 移动到新位置 sudo mv node-v22.* /usr/local/nodejs # 配置环境变量 (添加到 ~/.bashrc) echo export PATH$PATH:/usr/local/nodejs/bin ~/.bashrc source ~/.bashrc # 验证 node -v准备 OpenClaw 依赖 (最难点)由于npm install需要联网你在 WSL 里直接运行会报错。你有两个选择选择 A (手动拷贝)在Windows上创建一个空文件夹运行npm install openclaw把生成的node_modules文件夹整个复制到 WSL 的 OpenClaw 目录下。选择 B (使用预编译包)如果 OpenClaw 提供预编译的二进制文件Binary直接下载运行即可无需 npm。总结建议鉴于你是内网环境如果你必须用 DockerWindows 下载源码 ZIP docker pull基础镜像并导出。WSL 导入基础镜像 - 解压源码 - 修改 Dockerfile (注释掉所有联网安装命令) -docker build。警告这通常会导致运行报错因为缺少依赖包。如果你只是想跑起来 (推荐)放弃 Docker 构建。在 Windows 下载好Node.js Linux 版和OpenClaw 源码。在 Windows 上把node_modules依赖包下载全。全部扔进 WSL配置好 Node.js 路径直接运行node命令启动。最核心的痛点是npm install的离线依赖包。如果公司内网没有私有 npm 仓库建议找一台能上网的机器把node_modules打好包再拷贝进去。