本地运行
查看 Markdowndexcli dev 在你的机器上运行一套完整的 Dex:Dex Server 和 Dex Web。部署之前,用它来构建和测试 Flow。
安装 dexcli
dexcli 支持 macOS 和 Linux,amd64 和 arm64 架构都可以。Windows 不受支持。Linux 归档包或许能在 WSL 2 下运行,文档不涉及这种用法。
在 macOS 或 Linux 上用 Homebrew 安装:
brew install superdurable/tap/dexcli
brew update && brew upgrade superdurable/tap/dexcli # when you want the latest
不用 Homebrew 时,从 dexcli 发布版本 下载适合你系统的归档包。每个发布版本带有 cli-v 标签,每种系统一个归档包,例如 dexcli_vVERSION_linux_amd64.tar.gz。归档包里有 dexcli 和 dex-server-zd。把这两个文件放在 PATH 上的同一个目录里:
tar xzf dexcli_vVERSION_linux_amd64.tar.gz # VERSION is the release you downloaded
sudo mv dexcli dex-server-zd /usr/local/bin/
dexcli version
发布版本里还有 checksums.txt,可以用来校验下载的文件。
启动 Dex
dexcli dev
dexcli dev 会启动 Dex Server(server-zd)和 Dex Web。状态保存在本地磁盘上的 RocksDB 和内嵌的 s3local 对象存储中。默认端口空闲时,地址如下:
| Service | Address |
|---|---|
| Dex Web | http://127.0.0.1:8802 |
| Dex Server | 127.0.0.1:8801 |
dexcli dev 先打印服务器日志。Dex 准备好后,最后会输出类似下面的摘要:
Dex development environment is ready
Dex Web: http://127.0.0.1:8802
Connectors MCP: http://127.0.0.1:8802/mcp
Dex Server: 127.0.0.1:8801
State dir: /Users/you/.dex/zd/8801
Press Ctrl+C to stop.
让 Worker 和 Client 连接 Dex Server 地址,在浏览器中打开 Dex Web 地址。状态目录会在 dexcli dev 重启后保留你的 Flow。
排查问题
- Worker 或 Client 连接失败。 确认 dexcli dev 仍在运行,并且已经打印 Dex development environment is ready。使用它打印出的 Dex Server 地址。示例从
DEX_FLOW_SERVICE_ADDRESS读取这个地址,默认是 127.0.0.1:8801。 - 端口被占用。 dexcli dev 会改用其他空闲端口并打印出来。要自己指定端口,传入
-dex-port和-web-port。 - Worker 已就绪,但什么都没运行。 确认 Worker 和启动命令注册的是同一个 Flow,并且连接的是同一个 Dex Server。Dex Web 会列出这个 Flow,并显示正在等待的 Step。
- 想从头开始。 停止 dexcli dev,删除它的状态目录。所有 Flow 都会被删除。
再运行一个 Dex
在同一台机器上再开一个 dexcli dev,它会改用其他空闲端口和独立的状态目录。把它打印出的 Dex Server 地址传给 -server。
参考
CLI 参考(英文)介绍每个命令、它的 flag,以及 dexcli dev 的持久化选项。
下一步
你的应用:Dex 应用就是你部署的代码。