1

我正在尝试通过 Bluemix 上的工具链部署我的 LoopBack/Node.js 应用程序。我正在尝试VCAP_SERVICES在我的datasources.production.js文件中使用。我的问题似乎与部署期间无法访问任何环境变量有关。

我可以在部署期间的日志输出中看到 NODE_ENV 正在设置,但 LoopBack 加载我的datasources.local.js文件而不是生产文件。我的 NODE_ENV 的 console.log 说未定义。我的任何 console.logJSON.parse(process.env.VCAP_SERVICES)结果都在{}.

我还可以在 Bluemix UI 中看到我已将 VCAP_SERVICES 绑定到我的应用程序。

我一直在修改这个提交,但你可以在这里看到我想要做的事情,包括 console.log 调用。https://github.com/StrongLoop-Evangelists/band-app/commit/95640d3ffc7cd9e7553062f7a1b8c66ef0fc2815

这是相关的 console.log 输出:

2017-05-08T15:38:22.67+0000 [APP/0]      OUT ---datasources.local.js---
2017-05-08T15:38:22.67+0000 [APP/0]      OUT ---env.js---
2017-05-08T15:38:22.67+0000 [APP/0]      OUT in VCAP if check
2017-05-08T15:38:22.67+0000 [APP/0]      OUT VCAP:  {}
2017-05-08T15:38:22.67+0000 [APP/0]      ERR console.log('NODE_ENV: ', NODE_ENV);
2017-05-08T15:38:22.67+0000 [APP/0]      ERR                           ^
2017-05-08T15:38:22.67+0000 [APP/0]      ERR ReferenceError: NODE_ENV is not defined
4

2 回答 2

1

Joe:如果您使用交付管道作为 Bluemix 中工具链的一部分来部署 Cloud Foundry 应用程序,那么需要了解一件小事。

在舞台上设置“环境属性”不会自动将其传递给 cf 应用程序。它仅使它们可用于进行部署的管道。要在 cf 应用程序上也设置这些,您需要执行 cf set-env。例如:

cf set-env myApp $MY_ENV_VAR
于 2017-05-10T21:25:26.087 回答
1

我的问题是manifest.yml相关的。

这让我失望了:

---
applications:
  - name: Band-App
    memory: 256M
  - services:
    - bandapp-cloudantdb

这有效:

name: Band-App
memory: 256M
services:
  - bandapp-cloudantdb
于 2017-05-08T19:08:56.843 回答