Как я могу экранировать эту JSON строку в Docker переменной среды создания файла? - PullRequest
0 голосов
/ 21 марта 2020

Вот мой docker -компонентный файл yaml.

version: '2.1'

services:
  myservice:
    environment:
      - MYENVVAR={"1": "Hello"}

Это дает мне следующую ошибку синтаксического анализа при запуске docker-compose

ERROR: yaml.parser.ParserError: while parsing a block mapping
  in "./my_docker_compose_.yml", line 6, column 9
expected <block end>, but found '}'
  in "./my_docker_compose_.yml", line 6, column 111

Как мне избежать моего JSON объект правильно, поэтому он отправляется в контейнер как значение переменной окружения MYENVVAR?

1 Ответ

0 голосов
/ 21 марта 2020

Вы должны определить эту переменную как: 'FOOBAR = {"foo": "bar"}'

Короче:

version: '3.3'
services:
    nginx:
        ports:
            - '80:80'
        volumes:
            - '/var/run/docker.sock:/tmp/docker.sock:ro'
        restart: always
        logging:
            options:
                max-size: 1g
        environment:
            - 'FOOBAR={"foo": "bar"}'
            - a=test
        image: nginx

Подобный вопрос был поднят на docker Система отслеживания ошибок:

https://github.com/docker/compose/issues/3878

Вы можете проверить или поэкспериментировать с docker -созданием настроек онлайн, посетив веб-страницу: https://composerize.com/

...