@@ -2,32 +2,32 @@ FROM python:3.12-slim
22
33# 合并所有 apt 操作到一个 RUN,并清理缓存
44RUN apt-get update && apt-get install -y --no-install-recommends \
5- libmagic1 \
6- git \
7- sudo \
8- curl \
9- gnupg \
10- zip \
11- ca-certificates \
12- && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
13- && apt-get install -y --no-install-recommends nodejs \
14- && npm install -g @anthropic-ai/claude-code@latest \
15- && npm install -g openclaw@latest \
16- && npm install -g clawhub@latest \
17- && npm install -g @playwright/cli@latest \
18- && apt-get clean \
19- && rm -rf /var/lib/apt/lists/* \
20- && rm -rf /root/.npm \
21- && rm -rf /tmp/*
5+ libmagic1 \
6+ git \
7+ sudo \
8+ curl \
9+ gnupg \
10+ zip \
11+ ca-certificates \
12+ && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
13+ && apt-get install -y --no-install-recommends nodejs \
14+ && npm install -g @anthropic-ai/claude-code@latest \
15+ && npm install -g openclaw@2016.3.13 \
16+ && npm install -g clawhub@latest \
17+ && npm install -g @playwright/cli@latest \
18+ && apt-get clean \
19+ && rm -rf /var/lib/apt/lists/* \
20+ && rm -rf /root/.npm \
21+ && rm -rf /tmp/*
2222
2323# 创建用户
2424RUN groupadd -r user && useradd -r -g user -m -s /bin/bash user
2525
2626# 创建目录并设置权限
2727RUN mkdir -p /data /data/user /app /home/user/.claude/skills /home/user/.openclaw /home/user/db && \
28- chown -R user:user /data /app /home/user && \
29- chmod 755 /data /app /home/user && \
30- chmod 775 /home/user/db /home/user/.claude /home/user/.claude/skills /home/user/.openclaw
28+ chown -R user:user /data /app /home/user && \
29+ chmod 755 /data /app /home/user && \
30+ chmod 775 /home/user/db /home/user/.claude /home/user/.claude/skills /home/user/.openclaw
3131
3232# 安装 Python 依赖
3333WORKDIR /app
@@ -48,25 +48,25 @@ RUN openclaw plugins install @openclaw-china/channels
4848
4949# 把插件数据备份到不会被挂载覆盖的目录
5050RUN mkdir -p /app/.openclaw-extensions-backup && \
51- cp -a /home/user/.openclaw/extensions /app/.openclaw-extensions-backup/
51+ cp -a /home/user/.openclaw/extensions /app/.openclaw-extensions-backup/
5252
5353EXPOSE 8000 18789
5454
5555# 启动时检查 channels 插件是否存在,不存在才恢复
5656CMD ["sh" , "-c" , "\
57- if [ ! -d \" /home/user/.openclaw/extensions/channels\" ]; then \
58- mkdir -p /home/user/.openclaw/extensions && \
59- cp -a /app/.openclaw-extensions-backup/extensions/* /home/user/.openclaw/extensions/ 2>/dev/null || true; \
60- echo 'Restored openclaw extensions (channels plugin was missing)'; \
61- else \
62- echo 'channels plugin exists, skipping restore'; \
63- fi && \
64- mkdir -p /home/user/.claude/skills && \
65- for p in /app/.skills-backup/*; do \
66- name=\" $(basename \" $p\" )\" ; \
67- cp -a \" $p\" /home/user/.claude/skills/ 2>/dev/null || true; \
68- echo \" Restored skill entry (overwrite): $name\" ; \
69- done && \
70- openclaw gateway run --port 18789 --bind lan & \
71- uvicorn main:app --host 0.0.0.0 --port 8000\
72- " ]
57+ if [ ! -d \" /home/user/.openclaw/extensions/channels\" ]; then \
58+ mkdir -p /home/user/.openclaw/extensions && \
59+ cp -a /app/.openclaw-extensions-backup/extensions/* /home/user/.openclaw/extensions/ 2>/dev/null || true; \
60+ echo 'Restored openclaw extensions (channels plugin was missing)'; \
61+ else \
62+ echo 'channels plugin exists, skipping restore'; \
63+ fi && \
64+ mkdir -p /home/user/.claude/skills && \
65+ for p in /app/.skills-backup/*; do \
66+ name=\" $(basename \" $p\" )\" ; \
67+ cp -a \" $p\" /home/user/.claude/skills/ 2>/dev/null || true; \
68+ echo \" Restored skill entry (overwrite): $name\" ; \
69+ done && \
70+ openclaw gateway run --port 18789 --bind lan & \
71+ uvicorn main:app --host 0.0.0.0 --port 8000\
72+ " ]
0 commit comments