在使用cro存根http测试测试创建存根服务之后,我在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端口。亚历克斯·施罗德导出环境变量以在另一个端口启动Cro。命令"export TEST_PORT=“3001 && cro run”仍然使用默认端口。
在Cro中定义服务端口的正确形式是什么?
发布于 2020-03-23 11:08:16
cro run工具会自动为它启动的所有服务分配端口。这是为了确保他们得到一个自由的端口,不被使用的其他东西。因此,它将用它选择的端口注入环境变量。在使用cro run时,您不能选择端口。
要在所选的端口上运行服务,不使用cro run,也就是说,只需导出环境变量并调用类似于raku -Ilib service.p6的服务(如果您有较早的安装,则使用perl6 -Ilib service.p6 )。这样,服务将看到包含您选择的端口的环境变量。默认的Dockerfile也被设置为这样做。
请注意,cro开发工具仅作为开发时间辅助工具,不适合于生产部署(这是选择端口的主要情况)。
https://stackoverflow.com/questions/60810116
复制相似问题