为什么我的LoopBack / Node应用程序不能在Bluemix中的工具链部署中获取环境变量?

时间:2017-05-08 15:57:18

标签: javascript node.js ibm-cloud loopbackjs devops-services

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

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

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

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

这是相关的console.log输出:

{}

2 个答案:

答案 0 :(得分:1)

Joe:如果您使用交付管道作为Bluemix中工具链的一部分来部署云代工厂应用程序,那么有一件事要知道。

设置"环境属性"在舞台上不会自动将其传递给cf app。它只使它们可用于执行部署的管道。要在cf app上设置这些,你需要做一个cf set-env。例如:

cf set-env myApp $MY_ENV_VAR

答案 1 :(得分:0)

我的问题是manifest.yml相关。

这让我失望了:

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

这有效:

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