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
开发工具仅用作 开发时间 帮助,不适用于生产部署(这是选择的主要情况港口很重要)。
在使用 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
开发工具仅用作 开发时间 帮助,不适用于生产部署(这是选择的主要情况港口很重要)。