最近在优化龙虾(OpenClaw)的 Docker 部署,发现默认的 compose 配置有不少可以优化的地方。
默认配置的问题
默认的 docker-compose.yml 什么限制都没设,容器想吃多少内存就吃多少。在我的 4G 小鸡上,经常 OOM。
优化后的配置
services:
openclaw:
image: openclaw/openclaw:latest
deploy:
resources:
limits:
memory: 1G
cpus: '1.0'
reservations:
memory: 512M
environment:
- NODE_OPTIONS=--max-old-space-size=512
- OPENCLAW_WORKERS=2
volumes:
- ./data:/data
ports:
- "127.0.0.1:18789:18789"
restart: unless-stopped
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
关键改动:
- 内存限制 1G:实测个人使用完全够了
- Node.js 堆内存 512M:防止内存泄漏
- Worker 数量 2:默认是 CPU 核数,小机器改成 2 就够
- 日志限制:防止日志撑爆硬盘
优化后内存稳定在 500-700MB,比之前的 1.2G 降了 40% 左右。