[Bug]: 官方镜像未安装 wecom-cli,企业微信通知报「通知服务未安装 wecom-cli」

Offen Anfängerfreundlich
#156 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
76/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
docker, go, node.js
Bereich
backend, devops

Rechercherichtung

Lies den Abschnitt zur Runtime-Installation in Dockerfile und den Aufruf von wecom-cli in internal/notification/provider.go. Füge die CLI wie im Issue beschrieben zum Runtime-Image hinzu und prüfe dann scripts/test-runtime-image.sh auf die vorhandenen CLI-Prüfungen. Fertig ist die Arbeit, wenn das erstellte Image wecom-cli --version bereitstellt und die Runtime-Image-Prüfung das Fehlen der CLI erkennt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug
Component / host

Platform — deployment

Edition

Platform

LoopForge version

v0.3.3(ghcr.io/tencent/loopforge:0.3.3),main @ ffaed15 的源码构建同样存在

What happened?

用官方镜像部署后,在通知机器人里发送企业微信通知,接口返回:

通知服务未安装 wecom-cli,请联系管理员

企业微信通知走 internal/notification/provider.go 的 CLIProvider,它用 exec.CommandContext 调用名为 wecom-cli 的可执行文件(NewCLIProvider 中 Binary: "wecom-cli"),找不到时返回上面的提示。但 Dockerfile 的运行阶段只全局安装了 @openai/codex 和 @tencent-ai/codebuddy-code,没有安装 wecom-cli,docs/ 和 README 里也没有提到需要另外安装。所以按文档用官方镜像或 scripts/install.sh 部署的平台,企业微信通知功能一定用不了。

预期:官方镜像开箱即可发送企业微信通知;或者文档写明需要自行提供 wecom-cli,并说明安装方式。

Reproduction
  1. 用 scripts/install.sh(官方 GHCR 镜像)或 compose.dev.yaml 源码构建部署平台。
  2. docker compose exec platform sh -c 'command -v wecom-cli || echo missing',输出 missing。
  3. 在平台里配置企业微信通知机器人(Bot ID / Secret)并触发一次通知。
  4. 返回「通知服务未安装 wecom-cli,请联系管理员」。
Suggested fix

wecom-cli 是企业微信官方 npm 包 @wecom/cli(源码 WecomTeam/wecom-cli),bin 名就是 wecom-cli,按平台通过 optionalDependencies 带 @wecom/cli-linux-x64 / @wecom/cli-linux-arm64 等静态链接的二进制,没有 postinstall 脚本。可以和现有 CLI 一样固定版本装进运行阶段:

 && npm install -g @openai/[email protected] @tencent-ai/[email protected] @wecom/[email protected]

arm64 镜像会自动装上 @wecom/cli-linux-arm64。另外建议在 scripts/test-runtime-image.sh 里加一条 wecom-cli --version 检查,防止以后再漏掉。

Sanitized diagnostics
# 在 v0.3.3 平台镜像中临时挂入 @wecom/[email protected] 的二进制(sha512 与 npm 登记的 integrity 一致)后:
$ docker run --rm --network none -v ./wecom-cli:/usr/local/bin/wecom-cli:ro --entrypoint sh <platform-image> -c 'wecom-cli --version'
wecom-cli 1.3.4 (wecom 2026-09-23T11:45:45Z f9b2815)
# 镜像里已有 ca-certificates,二进制在 node:22-bookworm 上可直接运行(缺 CA 证书时会 panic:No CA certificates were loaded from the system)。

# 目前的临时做法:宿主机放置二进制,通过 compose.override.yaml 只读挂载
services:
  platform:
    volumes:
      - /opt/wecom-cli/wecom-cli:/usr/local/bin/wecom-cli:ro
Safety checks
  • I removed credentials, private endpoints, internal identifiers, and personal data.
  • I searched existing issues for duplicates.
Vorherrschende Sprache
Go
Sterne
141
Forks
28
Ø Merge
2 T. 15 Std.
Gemergte PRs (30 T.)
41

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Tencent/LoopForge

Alle Issues in Tencent/LoopForge

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.