如何在Docker Compose文件环境变量中转义此JSON字符串



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

您应该将此变量定义为:'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/

最新更新