跳到主要内容

本地运行

查看 Markdown

dexcli 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 对象存储中。默认端口空闲时,地址如下:

ServiceAddress
Dex Webhttp://127.0.0.1:8802
Dex Server127.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 应用就是你部署的代码。