Skip to content

Commit 0f14356

Browse files
committed
chore: test dockerfile
1 parent 0c9d62c commit 0f14356

1 file changed

Lines changed: 36 additions & 42 deletions

File tree

Dockerfile

Lines changed: 36 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ RUN groupadd -r user && useradd -r -g user -m -s /bin/bash user
2525

2626
# 创建目录并设置权限
2727
RUN 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 && \
31-
chmod -R 755 /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 && \
31+
chmod -R 755 /home/user/.openclaw
3232

3333

3434
# 安装 Python 依赖
3535
WORKDIR /app
36-
COPY requirements.txt ./
36+
COPY --chown=user:user requirements.txt ./
3737
RUN pip install --no-cache-dir -r requirements.txt
3838

3939
# 复制代码
@@ -44,48 +44,42 @@ COPY --chown=user:user skills/ /app/.skills-backup/
4444

4545
ENV HOME=/home/user
4646

47+
# 安装插件
48+
RUN openclaw plugins install @openclaw-china/channels
49+
50+
# 把插件数据备份到不会被挂载覆盖的目录
51+
RUN mkdir -p /app/.openclaw-extensions-backup && \
52+
cp -r /home/user/.openclaw/extensions /app/.openclaw-extensions-backup/
53+
4754
EXPOSE 8000 18789
4855

4956
# 启动时尝试修复挂载目录权限(bind mount 场景可能无效),然后降权运行主命令
5057
ENTRYPOINT ["sh", "-lc", "\
51-
set -e && \
52-
echo 'BOOT: entrypoint start' && \
53-
mkdir -p /home/user/.openclaw && \
54-
chmod -R 755 /home/user/.openclaw 2>/dev/null || true && \
55-
chown -R user:user /home/user/.openclaw 2>/dev/null || true && \
56-
exec su -s /bin/sh -c \"$*\" user --\
57-
", "--"]
58+
set -e && \
59+
echo 'BOOT: entrypoint start' && \
60+
mkdir -p /home/user/.openclaw && \
61+
chmod -R 755 /home/user/.openclaw 2>/dev/null || true && \
62+
chown -R user:user /home/user/.openclaw 2>/dev/null || true && \
63+
exec su -s /bin/sh -c \"$*\" user --\
64+
", "--"]
5865

5966
# 启动时检查 channels 插件是否存在,不存在才恢复
6067
USER root
6168
CMD ["sh", "-c", "\
62-
set -e && \
63-
echo 'BOOT: cmd start' && \
64-
OPENCLAW_CFG=\"/home/user/.openclaw/openclaw.json\" && \
65-
OPENCLAW_CFG_BAK=\"/home/user/.openclaw/openclaw.json.back302ai\" && \
66-
CHANNELS_DIR=\"/home/user/.openclaw/extensions/channels\" && \
67-
if [ -d \"$CHANNELS_DIR\" ]; then \
68-
echo 'channels plugin exists, skipping install'; \
69-
else \
70-
if [ -f \"$OPENCLAW_CFG\" ]; then \
71-
mkdir -p /home/user/.openclaw && \
72-
rm -f \"$OPENCLAW_CFG_BAK\" && \
73-
mv \"$OPENCLAW_CFG\" \"$OPENCLAW_CFG_BAK\" && \
74-
echo 'Temporarily moved openclaw.json to .back302ai for plugin install'; \
75-
fi && \
76-
openclaw plugins install @openclaw-china/channels && \
77-
echo 'Installed openclaw channels plugin' && \
78-
if [ -f \"$OPENCLAW_CFG_BAK\" ]; then \
79-
mv -f \"$OPENCLAW_CFG_BAK\" \"$OPENCLAW_CFG\" && \
80-
echo 'Restored openclaw.json'; \
81-
fi; \
82-
fi && \
83-
mkdir -p /home/user/.claude/skills && \
84-
for p in /app/.skills-backup/*; do \
85-
name=\"$(basename \"$p\")\"; \
86-
cp -a \"$p\" /home/user/.claude/skills/ 2>/dev/null || true; \
87-
echo \"Restored skill entry (overwrite): $name\"; \
88-
done && \
89-
openclaw gateway run --port 18789 --bind lan & \
90-
uvicorn main:app --host 0.0.0.0 --port 8000\
91-
"]
69+
if [ ! -d \"/home/user/.openclaw/extensions/channels\" ]; then \
70+
mkdir -p /home/user/.openclaw/extensions && \
71+
cp -r /app/.openclaw-extensions-backup/extensions/* /home/user/.openclaw/extensions/ 2>/dev/null || true; \
72+
echo 'Restored openclaw extensions (channels plugin was missing)'; \
73+
else \
74+
echo 'channels plugin exists, skipping restore'; \
75+
fi && \
76+
mkdir -p /home/user/.claude/skills && \
77+
for p in /app/.skills-backup/*; do \
78+
name=\"$(basename \"$p\")\"; \
79+
cp -r \"$p\" /home/user/.claude/skills/ 2>/dev/null || true; \
80+
echo \"Restored skill entry (overwrite): $name\"; \
81+
done && \
82+
chmod -R 755 /home/user/ && chmod -R 755 /app && chown -R user:user /home/user && \
83+
su - user -c 'cd /app && openclaw gateway run --port 18789 --bind lan & \
84+
uvicorn main:app --host 0.0.0.0 --port 8000' \
85+
"]

0 commit comments

Comments
 (0)