raku - Cro:如何在 .cro.yml 中为每个服务定义端口?
问题描述
使用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"
...
尽管如此,Cro 仍然使用默认的 20000 端口。Alex Schroeder导出环境变量以在不同的端口启动 Cro。命令“ export TEST_PORT="3001" && cro run ”仍然使用默认端口。
在 Cro 中定义服务端口的正确形式是什么?
解决方案
该cro run
工具会自动将端口分配给它启动的所有服务。这是为了确保他们获得一个未用于其他用途的空闲端口。因此,它将使用它选择的端口注入环境变量。使用时无需选择端口cro run
。
要在选定的端口上运行服务,请不使用cro run
,也就是说,只需导出环境变量并调用服务raku -Ilib service.p6
(perl6 -Ilib service.p6
如果您有较旧的安装,则使用)。这样,服务将看到包含您选择的端口的环境变量。默认Dockerfile
设置也执行此操作。
请注意,cro
开发工具仅用作开发时间辅助,不适合生产部署(这是选择端口的主要情况)。
推荐阅读
- javascript - 图表中烛台开盘和高点的水平线
- json - System.err: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException 等等
- java - 我如何为我的 Wear OS 表盘制作这种菜单?
- sql - with 语句中三分之二的 DISTINCT
- gradle - 如何隐藏gradle任务?
- ios - 顶栏占据不可见空间,在视图控制器 xcode 故事板中留下空白空间
- calendar - 我可以使用 Graph API 将群组事件“添加到我的日历”吗?
- vb.net - Ser no Incremental problem in VB Visual Studio 2019,
- image - 如何在 Flutter 中从 Image 中获取像素颜色?
- python - Matplotlib:如何在带有颜色的插图顶部绘制主轴(不要使插图透明)