根据this comment,,docker compose
支持多行变量:
environment:
KEY: |-
line1
line2
但是,当我在容器中执行echo $KEY
时,它已用空格替换了换行符:
line1 line2
我错过了什么吗?我的泊坞版版本是1.12.1。
答案 0 :(得分:6)
YAML语法正确。 shell命令不是:
echo "$KEY"
用换行符打印字符串。
答案 1 :(得分:2)
几天前遇到同样的问题并通过以下方式解决:
KEY: "line1\nline2"
希望这也有助于你的情况。
答案 2 :(得分:0)
如果您需要在 env 变量中包含 json,请尝试使用 >
此解决方案非常有效。有很多方法可以使用 multiline strings in YAML。
version: '2'
services:
catalog-api-autoscaling:
image: company.it/project/catalog-api-autoscaling:latest
container_name: api-autoscaling
ports:
- "8083:8083"
environment:
CONFIG_ABC: >
{
"database": {
"catalog": {
"credentials": {
"username": "scott",
"password": "tiger",
"datbase": "catalog",
"host": "gn.dmfkd.lan"
}
}
}
}
CONFIG_DEF: >
{
"urlRegex": "/.*",
"script": {
"scriptPath": "example-python-app.py"
},
"runtime": "python27",
"threadsafe": true,
}