Неправильний тип 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 замість списку, слід працювати (видалення ведучого -перед NODE_CONFIG
Tensibai

Відповіді:


9

Посилання на файл Docker Compose зазначає , що змінні середовища визначаються як VARIABLE=valueелементи масиву. У вашому випадку файл docker-compose.yml потрібно змінити на такий:

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

Ні. Я спробував це спочатку, не виходить.
Tri Nguyen

@TriNguyen Дивно, це працює для мене
Hexaholic

Ну, збирання проходило б, але процес вузла не підбирає його.
Tri Nguyen


2

Вам потрібно видалити тире перед змінною. Використовуйте такий синтаксис:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.