我正在使用IBM Cloud部署一个JavaScript应用程序,该应用程序充当不和谐的侦听器聊天机器人。
当我部署代码时,机器人启动,但仅在部署阶段轮询正在运行的机器人实例的时间内保持启动。在日志中,我看到:
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
...等搜索后,我发现cf正在轮询不应该存在的路由,因为此应用程序只是一个侦听器,所以我添加了最后一行:
no-route: true
到我的manifest.yml:
applications:
- path: .
name: discord-bot
environment_json: {}
memory: 256M
instances: 1
disk_quota: 1024M
services: []
no-route: true
这会删除日志中的路由:
Removing route discord-bot....
但是,在轮询,发现0个实例并最终因消息而崩溃时,我遇到了同样的问题:
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 crashed
FAILED
Error restarting application: Start unsuccessful
当我使用IBM-Cloud时,我不确定如何在命令行上推送应用程序时指定诸如'--no-route'之类的参数,但是我认为这无论如何都行不通位于我的manifest.yml中,在部署阶段已确认,但是它仍在检查应用程序是否正在运行。
我知道我已经说过了,但是只是为了说明一下,我的机器人在检查实例的过程中可以正常运行。它执行了大约三分钟,决定找不到它,然后崩溃了。如果我可以删除此检查过程,则该应用程序应该可以运行。
我该怎么做?
答案 0 :(得分:0)
您需要了解Cloud Foundry checks the app health。默认情况下,即使您不希望路由到该应用程序,它也会期望一个Web应用程序并轮询该端口。您可以configure a different health check type in the manifest file。
保留您的no-route
设置,并使用process
作为健康检查类型。