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ć?

Tri Nguyen
źródło
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"}'
Heksaholic
źródło
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

Same elementy args muszą być ciągiem

  args:
    - 'MAVEN_USER=$MAVEN_USER'
    - 'MAVEN_PASSWORD=$MAVEN_PASSWORD'
Richard Collette
źródło
tak, to zadziałało dla mnie dzisiaj.
Adam Mendoza
2

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

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Jumshud
źródło