Niepoprawny typ docker-compose, powinien to być ciąg znaków


19

Mam następującą zmienną środowiskową skonfigurowaną w pliku docker-compose.yml:

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

Podczas próby uruchomienia docker-compose uppojawia się ten błąd:

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

Potrzebuję ustawić zmienną środowiskową na ciąg JSON (patrz https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

Czy robię tu coś złego? Czy mogę to jakoś zadziałać?


Myślę, że problem pochodzi z jelita grubego w środku, zgodnie z tym komentarzem na temat problemu z githubem, użycie dykta zamiast listy powinno działać (usunięcie wiodącego -przed NODE_CONFIG
Tensibai

Odpowiedzi:


9

Referencyjny nadany Docker Compose stwierdza , że zmienne środowiskowe są zdefiniowane jako VARIABLE=valueelementy tablicy. W twoim przypadku plik docker-compose.yml musiałby zostać zmieniony na:

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

Nie. Najpierw tego spróbowałem, to nie działa.
Tri Nguyen

@TriNguyen Dziwne, to działa dla mnie
Hexaholic

Kompilacja przebiegnie, ale proces węzła go nie odbierze.
Tri Nguyen


2

Musisz usunąć myślnik przed zmienną. Użyj następującej składni:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.