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"}'

Нет. Сначала я попробовал, это не работает.
Три Нгуен

@TriNguyen Странно, у меня это работает
Гексаголик,

Ну, сборка прошла бы, но процесс узла не поднял ее.
Три Нгуен


2

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

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.