如何在docker-compose.yml中定义多行键?
我尝试了diff解决方案:
environment:
- PRIVATE_KEY= |-
-----BEGIN RSA PRIVATE KEY-----
line2
environment:
- PRIVATE_KEY= |
-----BEGIN RSA PRIVATE KEY-----
line2
environment:
- PRIVATE_KEY= !
-----BEGIN RSA PRIVATE KEY-----
line2
environment:
- PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nline2"
environment:
- PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n\nline2"
资源: https://yaml-multiline.info/ https://gist.github.com/usmansaleem/bb47064f406c105fdfa69716544b7b8e
但是他们都没有以正确的方式格式化私钥。
编辑(添加):
environment:
- PRIVATE_KEY: |-
-----BEGIN RSA PRIVATE KEY-----
line2
答案 0 :(得分:1)
“测试”文档中的唯一键是标量enemy_list
,其他标量都是无引号的多行标量值。
您所参考的文档解释了如何进行文字标量,但是您绝不会尝试这样做,
environment
和做的一样
- PRIVATE_KEY= |-
-----BEGIN RSA PRIVATE KEY-----
line2
即 - PRIVATE_KEY= |- -----BEGIN RSA PRIVATE KEY----- line2
除了标量的开头没有任何特殊功能。
您是否尝试过:
|-
这将是一个键值对(请注意值指示符( PRIVATE_KEY: |-
-----BEGIN RSA PRIVATE KEY-----
line2
),而不是普通字符:
),并且该值是块样式文字标量
答案 1 :(得分: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,
}