使用cro stub http test test创建存根服务后,我在.cro.yml 中定义了 TEST_PORT 环境变量:
---
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"
...
Run Code Online (Sandbox Code Playgroud)
尽管如此,Cro 仍然使用默认的 20000 端口。Alex Schroeder导出环境变量以在不同的端口中启动 Cro。命令“ export TEST_PORT="3001" && cro run仍然使用默认端口。
在 Cro 中定义服务端口的正确形式是什么?
Jon*_*ton 10
该cro run工具会自动为它启动的所有服务分配端口。这是为了确保他们获得一个不用于其他用途的自由端口。因此,它将使用它选择的端口注入环境变量。使用时不能选择端口cro run.
要在选定的端口上运行服务,请不要使用cro run,也就是说,只需导出环境变量并像调用服务一样raku -Ilib service.p6(或者perl6 -Ilib service.p6如果您有较旧的安装,则使用)。这样,服务将看到包含您选择的端口的环境变量。默认的Dockerfile设置也是这样做的。
请注意,该cro开发工具仅用作开发时间辅助工具,不适用于生产部署(这是选择端口很重要的主要情况)。