syw1516 commited on
Commit
fec7fe2
·
verified ·
1 Parent(s): 43a222e

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +47 -0
Dockerfile CHANGED
@@ -12,7 +12,10 @@ RUN apt-get update && apt-get install -y \
12
  RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
13
  && apt-get install -y nodejs
14
 
 
15
  RUN npm install -g openclaw@latest
 
 
16
  RUN pip3 install --break-system-packages huggingface_hub -q
17
 
18
  # 映射 HF Secrets RAW_MODEL 到脚本期望的变量
@@ -30,12 +33,49 @@ OPENCLAW_LLM_MODEL="${OPENCLAW_LLM_MODEL:-z-ai/glm4.7}"\n\
30
  BACKUP_ENABLED="${OPENCLAW_BACKUP_ENABLED:-true}"\n\
31
  HF_TOKEN="${HF_TOKEN:-${HUGGINGFACE_HUB_TOKEN:-}}"\n\
32
  BACKUP_DATASET_REPO="${OPENCLAW_BACKUP_DATASET_REPO:-}"\n\
 
33
  \n\
34
  mkdir -p /var/log/openclaw\n\
35
  mkdir -p "${OPENCLAW_STATE_DIR}"/{workspace,agents/main/agent,agents/main/sessions,logs,identity}\n\
36
  \n\
37
  log_info() { echo "[$(date -u +%%Y-%%m-%%dT%%H:%%M:%%SZ)] [ENTRYPOINT] $1" | tee -a /var/log/openclaw/gateway.stdout.log; }\n\
38
  \n\
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  restore_if_exists() {\n\
40
  [[ -z "${HF_TOKEN}" ]] && return 0\n\
41
  [[ -z "${BACKUP_DATASET_REPO}" ]] && return 0\n\
@@ -84,6 +124,11 @@ init_config() {\n\
84
  "allowInsecureAuth": true\n\
85
  }\n\
86
  },\n\
 
 
 
 
 
87
  "models": {\n\
88
  "providers": {\n\
89
  "nvidia": {\n\
@@ -109,6 +154,7 @@ EOFCONFIG\n\
109
  main() {\n\
110
  log_info "===== OpenClaw 启动 ====="\n\
111
  init_config\n\
 
112
  restore_if_exists\n\
113
  backup_on_start\n\
114
  log_info "启动 OpenClaw 网关..."\n\
@@ -125,3 +171,4 @@ ENTRYPOINT ["/scripts/openclaw-entrypoint.sh"]
125
 
126
 
127
 
 
 
12
  RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
13
  && apt-get install -y nodejs
14
 
15
+ # 安装 openclaw + 微信插件
16
  RUN npm install -g openclaw@latest
17
+ RUN npm install -g @tencent-weixin/openclaw-weixin
18
+
19
  RUN pip3 install --break-system-packages huggingface_hub -q
20
 
21
  # 映射 HF Secrets RAW_MODEL 到脚本期望的变量
 
33
  BACKUP_ENABLED="${OPENCLAW_BACKUP_ENABLED:-true}"\n\
34
  HF_TOKEN="${HF_TOKEN:-${HUGGINGFACE_HUB_TOKEN:-}}"\n\
35
  BACKUP_DATASET_REPO="${OPENCLAW_BACKUP_DATASET_REPO:-}"\n\
36
+ WEIXIN_QR_FILE="/tmp/weixin_qr_url.txt"\n\
37
  \n\
38
  mkdir -p /var/log/openclaw\n\
39
  mkdir -p "${OPENCLAW_STATE_DIR}"/{workspace,agents/main/agent,agents/main/sessions,logs,identity}\n\
40
  \n\
41
  log_info() { echo "[$(date -u +%%Y-%%m-%%dT%%H:%%M:%%SZ)] [ENTRYPOINT] $1" | tee -a /var/log/openclaw/gateway.stdout.log; }\n\
42
  \n\
43
+ # ── 恢复微信 session ──────────────────────────────\n\
44
+ restore_weixin_session() {\n\
45
+ [[ -z "${HF_TOKEN}" ]] && return 0\n\
46
+ [[ -z "${BACKUP_DATASET_REPO}" ]] && return 0\n\
47
+ log_info "恢复微信登录 session..."\n\
48
+ huggingface-cli download "${BACKUP_DATASET_REPO}" --repo-type dataset --token "${HF_TOKEN}" --local-dir "${OPENCLAW_STATE_DIR}" 2>/dev/null && log_info "微信 session 恢复完成" || log_info "无微信 session 可恢复"\n\
49
+ }\n\
50
+ \n\
51
+ # ── 备份微信 session ──────────────────────────────\n\
52
+ backup_weixin_session() {\n\
53
+ [[ -z "${HF_TOKEN}" ]] && return 0\n\
54
+ [[ -z "${BACKUP_DATASET_REPO}" ]] && return 0\n\
55
+ log_info "备份微信登录 session..."\n\
56
+ huggingface-cli upload "${BACKUP_DATASET_REPO}" "${OPENCLAW_STATE_DIR}" --repo-type dataset --token "${HF_TOKEN}" 2>/dev/null && log_info "微信 session 备份完成" || true\n\
57
+ }\n\
58
+ \n\
59
+ # ── 生成微信二维码 URL ──────────────────────────────\n\
60
+ generate_weixin_qr() {\n\
61
+ log_info "正在获取微信二维码 URL..."\n\
62
+ openclaw channels login --channel openclaw-weixin > "${WEIXIN_QR_FILE}" 2>&1 &\n\
63
+ LOGIN_PID=$!\n\
64
+ for i in $(seq 1 30); do\n\
65
+ if grep -q "ilinkai.weixin.qq.com" "${WEIXIN_QR_FILE}" 2>/dev/null; then\n\
66
+ QR_URL=$(grep "ilinkai.weixin.qq.com" "${WEIXIN_QR_FILE}" | head -1 | tr -d "[:space:]")\n\
67
+ log_info "=========================================="\n\
68
+ log_info "微信登录二维码 URL:"\n\
69
+ log_info "${QR_URL}"\n\
70
+ log_info "请在浏览器中打开此链接,用微信扫码登录"\n\
71
+ log_info "=========================================="\n\
72
+ return 0\n\
73
+ fi\n\
74
+ sleep 1\n\
75
+ done\n\
76
+ log_info "未能自动获取二维码 URL,请查看日志获取 ilinkai.weixin.qq.com 链接"\n\
77
+ }\n\
78
+ \n\
79
  restore_if_exists() {\n\
80
  [[ -z "${HF_TOKEN}" ]] && return 0\n\
81
  [[ -z "${BACKUP_DATASET_REPO}" ]] && return 0\n\
 
124
  "allowInsecureAuth": true\n\
125
  }\n\
126
  },\n\
127
+ "plugins": {\n\
128
+ "entries": {\n\
129
+ "openclaw-weixin": { "enabled": true }\n\
130
+ }\n\
131
+ },\n\
132
  "models": {\n\
133
  "providers": {\n\
134
  "nvidia": {\n\
 
154
  main() {\n\
155
  log_info "===== OpenClaw 启动 ====="\n\
156
  init_config\n\
157
+ restore_weixin_session\n\
158
  restore_if_exists\n\
159
  backup_on_start\n\
160
  log_info "启动 OpenClaw 网关..."\n\
 
171
 
172
 
173
 
174
+