docker-compose неверный тип, это должна быть строка

19

У меня есть следующая переменная окружения, настроенная в файле docker-compose.yml:

version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'

При попытке запустить docker-compose upя получаю эту ошибку:

services.server.environment contains {"NODE_CONFIG": "{\"DATABASE_URL\":\"http://db:5984\"}"}, which is an invalid type, it should be a string

Мне нужно, чтобы переменная окружения была установлена ​​в строку JSON (см. Https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

Я что-то здесь не так делаю? Могу ли я заставить это работать как-то?

Три Нгуен
источник
Я думаю, что проблема исходит от двоеточия посередине, в соответствии с этим комментарием к проблеме- GitHub использование
DICT

Ответы:

9

Ссылка на файл Docker Compose утверждает , что переменные окружения определяются как VARIABLE=valueэлементы массива. В вашем случае файл docker-compose.yml необходимо изменить на этот:

version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG='{"DATABASE_URL":"http://db:5984"}'
Hexaholic
источник
Нет. Сначала я попробовал, это не работает.
Три Нгуен
@TriNguyen Странно, у меня это работает
Гексаголик,
Ну, сборка прошла бы, но процесс узла не поднял ее.
Три Нгуен
2

Сами элементы args должны быть строкой

  args:
    - 'MAVEN_USER=$MAVEN_USER'
    - 'MAVEN_PASSWORD=$MAVEN_PASSWORD'
Ричард Коллетт
источник
да, это сработало для меня сегодня.
Адам Мендоса
2

Вы должны удалить черту перед переменной. Используйте такой синтаксис:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Джумшуд
источник