docker-compose-如何转义环境变量

使用docker-composev2,可以简单地设置环境变量:

enviroment:

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

完整docker-compose.yml文件为:

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

[...]

但是,如何转义不是纯字符串的环境变量?

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

我试过了:

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" }}}'

错误:yaml.parser.ParserError:解析“ ./docker-compose.yml”第6行中的块映射时,预期第9列,但在“

./docker-compose.yml”第6行中找到了“}”。第92栏

回答:

环境变量(包括姓名), :""''

environment:

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

并使用双引号:

environment:

- 'PORT=3000'

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

值得注意的是,使用双引号""(如bash)将允许将变量放在环境变量中。

"MY_HOME_ENV_VARIABLE=${HOME}"

以上是 docker-compose-如何转义环境变量 的全部内容, 来源链接: utcz.com/qa/432476.html

回到顶部