静态文件部署失败并显示 [ERR] bash: node: command not found

Staticfile deployment fails with [ERR] bash: node: command not found

规格:

清单文件:

---
applications:
- name: test-app-ui
  memory: 2G
  path: dist
  buildpacks:
    - staticfile_buildpack 
  instances: 1

我通过 运行 ng build 创建了 dist 目录。然后推送到 CF 并在应用程序日志中出现此错误:

[ERR] bash: node: command not found

我认为 CF 应该使用 NGINX 在 dist 目录中提供这些静态文件,而不是 运行 寻找 node 服务器?

在应用程序设置页面中,我看到了这个:

Buildpack: staticfile v1.5.15

Start Command: node main.js

Stack: cflinuxfs3 (Cloud Foundry Linux-based filesystem - Ubuntu Bionic 18.04 LTS)

看起来需要 node 才能启动应用程序,但为什么 node 在此构建包中不是开箱即用的?

Start Command: node main.js

对于根本不包含 Node 的 Staticfile buildpack 是不正确的;默认和正确的值(参见 the repo)是:

Start Command: $HOME/boot.sh

很可能在某些时候有人通过 cf push -c ... or with a command: in the manifest file. You can reset back to the buildpack default using either of the methods shown in the docs:

覆盖了它
  • cf push -c null ...;或
  • command: null 在清单中。

如果这不起作用,并且实际的 buildpack 默认值不正确,您需要与您的管理员联系以修复该问题(可能您正在组织内使用自定义 buildpack),同时您可以使用上述任一方法显式设置 $HOME/boot.sh