2017-05-08 47 views
0

我想通過Bluemix上的工具鏈部署我的LoopBack/Node.js應用程序。我正在嘗試在我的datasources.production.js文件中使用VCAP_SERVICES。我的問題似乎與部署期間無法訪問任何環境變量有關。爲什麼我的LoopBack/Node應用程序不能在Bluemix中的工具鏈中部署環境變量?

我可以在部署過程中看到日誌輸出中NODE_ENV正在設置,但是LoopBack加載我的文件datasources.local.js而不是生產文件。而我NODE_ENV的console.log說未定義。任何我的console.log JSON.parse(process.env.VCAP_SERVICES)結果在{}

我也可以在Bluemix用戶界面中看到我已將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 

回答

0

我的問題manifest.yml有關。

這是失敗我:

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

這工作:

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

喬:如果你使用的輸水管道在Bluemix工具鏈的一部分,有部署Cloud Foundry的應用是知道的一件小事。

在舞臺上設置「環境屬性」不會自動將其傳遞給cf應用程序。它只能使它們在執行部署的管道中可用。要在cf應用上設置這些,你需要做一個cf set-env。例如:

cf set-env myApp $MY_ENV_VAR 
相關問題