Cro:如何为.cro.yml中的每个服务定义端口?

Cro: How to define port for each services in .cro.yml?

在使用 cro stub http test test 创建存根服务后,我在 中定义了 TEST_PORT 环境变量。cro.yml:

---
id: test
cro: 1
name: "test"
endpoints: 
  - 
    id: http
    name: HTTP
    protocol: http
    host-env: TEST_HOST
    port-env: TEST_PORT
links:  []
entrypoint: service.p6
env:
  - name: TEST_PORT
    value: "3001"
...

尽管如此,Cro 仍然使用默认的 20000 端口。 Alex Schroeder 导出环境变量以在不同的端口启动 Cro。命令“export TEST_PORT="3001" && cro 运行”仍然使用默认端口。

在 Cro 中定义服务端口的正确形式是什么?

cro run 工具会自动将端口分配给它启动的所有服务。这是为了确保他们获得未用于其他用途的空闲端口。因此,它将使用它选择的端口注入环境变量。使用 cro run.

时无需选择端口

到 运行 所选端口上的服务,不使用 cro run,也就是说,只需导出环境变量并像 raku -Ilib service.p6 那样调用服务(或使用 perl6 -Ilib service.p6 如果您有较旧的安装)。这样,该服务将看到包含您选择的端口的环境变量。默认 Dockerfile 也设置为执行此操作。

请注意,cro 开发工具仅用作 开发时间 帮助,不适用于生产部署(这是选择的主要情况港口很重要)。