docker-compose tipo no válido, debe ser una cadena


19

Tengo la siguiente variable de entorno configurada en un archivo docker-compose.yml:

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

Al intentar ejecutar docker-compose up, recibo este error:

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

Necesito que la variable de entorno se configure en una cadena JSON (consulte https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

¿Estoy haciendo algo mal aquí? ¿Puedo hacer que esto funcione de alguna manera?


Creo que el problema proviene del colon en el medio, de acuerdo con este comentario sobre el problema de github usando un dict en lugar de la lista debería funcionar (eliminando el encabezado -antes de NODE_CONFIG
Tensibai

Respuestas:


9

Los estados de referencia del archivo Docker Compose indican que las variables de entorno se definen como VARIABLE=valueelementos de matriz. Para su caso, el archivo docker-compose.yml necesitaría ser cambiado a esto:

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

No Lo intenté primero, no funciona.
Tri Nguyen

@TriNguyen Extraño, esto funciona para mí
Hexaholic

Bueno, la compilación pasaría, pero el proceso de nodo no lo recoge.
Tri Nguyen

2

Los elementos args deben ser una cadena.

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

Sí, esto funcionó para mí hoy.
Adam Mendoza

2

Debe eliminar el guión delante de la variable. Use una sintaxis así:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.