【问题标题】:Why isn't my LoopBack/Node app getting environment variables on a toolchain deploy in Bluemix?为什么我的 LoopBack/Node 应用程序没有在 Bluemix 中部署的工具链上获取环境变量?
【发布时间】:2017-10-06 17:19:53
【问题描述】:

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

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

我还可以在 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

【问题讨论】:

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


    【解决方案1】:

    我的问题与manifest.yml 相关。

    这让我很失望:

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

    这行得通:

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

    【讨论】:

      【解决方案2】:

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

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

      cf set-env myApp $MY_ENV_VAR
      

      【讨论】:

        猜你喜欢
        • 2020-08-05
        • 1970-01-01
        • 2019-10-15
        • 2018-05-21
        • 2019-08-13
        • 1970-01-01
        • 1970-01-01
        • 2021-07-28
        • 1970-01-01
        相关资源
        最近更新 更多