docker-composer - comment échapper à des variables d'environnement

Avec docker-compose v2 variables d'environnement peuvent être établies par tout simplement:

enviroment:
  - MONGO_PATH=mongodb://db-mongo:27017

La pleine docker-compose.yml fichier:

version: '2'
services:
  web:
    build: .
    environment:
      - MONGO_PATH=mongodb://db-mongo:27017
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    depends_on: 
      - db-mongo
      - db-redis
  db-mongo:
    image: mongo
    restart: unless-stopped
    command: --smallfiles
    ports:
      - "27017:27017"
    volumes:
      - ./data:/data/db
  [...]

Cependant, comment puis-je échapper à des variables d'environnement qui ne sont pas une simple chaîne de caractères?

{"database": {"data": {"host": "mongo"}}}

J'ai essayé:

NODE_CONFIG=\{"database": \{"data"\: \{"host": "mongo"\}, "session": \{"host": "redis" \}\}\}
NODE_CONFIG="\{"database": \{"data"\: \{"host": "mongo"\}, "session": \{"host": "redis" \}\}\}"
NODE_CONFIG='{"database": {"data": {"host": "mongo"}, "session": {"host": "redis" }}}'

ERREUR: yaml.analyseur.ParserError: lors du traitement d'un bloc de cartographie
"./docker-composer.yml", ligne 6, colonne 9 prévu , mais
trouvé '} "dans". /docker-composer.yml", ligne 6, colonne 92

OriginalL'auteur zurfyx | 2017-02-01