Ungültiger Docker-Compose-Typ, sollte ein String sein


19

Ich habe die folgende Umgebungsvariable in einer docker-compose.yml-Datei konfiguriert:

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

Beim Versuch zu rennen docker-compose uperhalte ich den folgenden Fehler:

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

Ich muss die Umgebungsvariable auf einen JSON-String setzen (siehe https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

Mache ich hier etwas falsch? Kann ich das irgendwie zum Laufen bringen?


Ich denke, das Problem kommt aus dem Doppelpunkt in der Mitte, laut diesem Kommentar zum Github-Problem sollte die Verwendung eines Diktats anstelle einer Liste funktionieren (Entfernen des Führenden -vor NODE_CONFIG
Tensibai

Antworten:


9

Die Docker Compose-Dateireferenz besagt , dass Umgebungsvariablen als VARIABLE=valueArray-Elemente definiert sind. In Ihrem Fall müsste die Datei docker-compose.yml folgendermaßen geändert werden:

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

Nee. Ich habe es zuerst versucht, es funktioniert nicht.
Tri Nguyen

@TriNguyen Seltsam, das funktioniert für mich
Hexaholic

Nun, der Build würde durchlaufen, aber der Knotenprozess nimmt ihn nicht auf.
Tri Nguyen

2

Die args-Elemente selbst müssen eine Zeichenfolge sein

  args:
    - 'MAVEN_USER=$MAVEN_USER'
    - 'MAVEN_PASSWORD=$MAVEN_PASSWORD'

Ja, das hat heute bei mir funktioniert.
Adam Mendoza

2

Sie müssen den Bindestrich vor der Variablen entfernen. Verwenden Sie die folgende Syntax:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.