Почему мое приложение LoopBack/Node не получает переменные среды в цепочке инструментов, развернутой в Bluemix?

Я пытаюсь развернуть свое приложение LoopBack/Node.js через набор инструментов в Bluemix. Я пытаюсь использовать VCAP_SERVICES в моем datasources.production.js файл. Кажется, мои проблемы связаны с невозможностью получить доступ к каким-либо переменным среды во время развертывания.

Во время развертывания я вижу в журнале, что NODE_ENV устанавливается, но LoopBack загружает мой datasources.local.js файл, а не производственный. И мой console.log NODE_ENV говорит, что не определено. Любой мой 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

2 ответа

Моя проблема была manifest.yml связанные с.

Это подводило меня

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

Это сработало:

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

Джо. Если вы используете конвейер доставки как часть набора инструментов в Bluemix для развертывания облачного литейного приложения, есть одна небольшая вещь, которую нужно знать.

Установка "Свойства среды" на этапе не будет автоматически передавать это приложению cf. Это только делает их доступными для конвейера, выполняющего развертывание. Чтобы также установить их в приложении cf, вам нужно выполнить команду cf set-env. Например:

cf set-env myApp $MY_ENV_VAR
Другие вопросы по тегам