【问题标题】:How can I escape this JSON string in Docker Compose file environment variable?如何在 Docker Compose 文件环境变量中转义这个 JSON 字符串?
【发布时间】:2020-07-02 05:11:09
【问题描述】:

这是我的 docker-compose 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 的值发送到容器中?

【问题讨论】:

    标签: docker docker-compose yaml escaping


    【解决方案1】:

    您应该将此变量定义为: '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 bug tracking system 上也提出了类似的问题:

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

    您可以在线验证或试验 docker-compose 设置 通过访问网页: https://composerize.com/

    【讨论】:

      猜你喜欢
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 2019-08-02
      • 2015-05-29
      • 2019-12-18
      • 2021-09-04
      相关资源
      最近更新 更多