tipo non valido docker-compose, dovrebbe essere una stringa


19

Ho la seguente variabile d'ambiente configurata in un file docker-compose.yml:

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

Quando docker-compose upprovo a correre , visualizzo questo errore:

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

Ho bisogno che la variabile d'ambiente sia impostata su una stringa JSON (vedi https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

Sto facendo qualcosa di sbagliato qui? Posso farlo funzionare in qualche modo?


Penso che il problema provenga dai due punti in mezzo, secondo questo commento sulla questione di github usando un dict invece che una lista dovrebbe funzionare (rimuovendo il -comando prima di NODE_CONFIG
Tensibai,

Risposte:


9

Il riferimento al file Compose Docker indica che le variabili di ambiente sono definite come VARIABLE=valueelementi di array. Nel tuo caso, il file docker-compose.yml dovrebbe essere modificato in questo:

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

No. L'ho provato prima, non funziona.
Tri Nguyen,

@TriNguyen Strano, questo funziona per me
Hexaholic il

Bene, la build andrebbe a buon fine, ma il processo del nodo non lo rileva.
Tri Nguyen,

2

Gli elementi args stessi devono essere una stringa

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

sì, questo ha funzionato per me oggi.
Adam Mendoza,

2

Devi rimuovere il trattino davanti alla variabile. Usa la sintassi in questo modo:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.