如何正确地多行 Yaml 列表
How to correctly multiline a Yaml List
我正在尝试在我的 docker-compose.yaml 文件中将 public 密钥设置为环境变量。
我知道我们可以使用 2 种不同的语法(不能同时使用):
一种是 YAML 映射,它使用语法 key: value
:
environment:
key: value
key2: value2
// And this is how we Muliline
publicKey: |-
-----BEGIN PUBLIC KEY-----
UAdhusaudu89Ajdsdoskdosadk*(Sd98798da
kaosdkOKdoksaoKDOaksdo98d7868sadajidas
我们还有 YAML list
语法,它使用语法 var = value
:
environment:
key=value
但是我怎样才能成功地多行使用 YAML 列表语法?
我也需要 换行符 (\n)。
当我尝试读取环境变量时,我得到一个字符串,其中没有 换行符 (/n) 我得到一个空格。
我得到:
-----BEGIN PUBLIC KEY----- KOSKODKSOAKD DOKSODKSAOD...
我实际需要的是:
-----BEGIN PUBLIC KEY-----\nKOSKODKSOAKD\nDOKSODKSAOD...
(注意/n)。
为什么我需要这个?
没有它,public 键 verification/validation 将失败。
现在我有一个函数可以遍历字符串并手动添加换行符,但它并不漂亮,如果我可以让它在 docker-compose 文件中工作,那就更好了。
在这里你可以获得帮助:
How do I break a string in YAML over multiple lines?
如果您不想在末尾附加换行符,请改用 >- 或 |-。
这个:
环境:
键=值
是一个有一个键environment
的映射,其值为key=value
。那没有进一步解析,=
在 YAML 中没有特殊含义(当然你的应用程序可以进一步解释这样的标量)
如果您想在块式 YAML 中使用列表语法,则需要使用块序列条目指示符,后跟 space (-
):
environment:
- key=value
再次 key=value
是 YAML 的单个标量。
要设置环境变量 DEBUG
,docker-compose documentation 使用:
web:
environment:
- DEBUG=1
环境变量名称 DEBUG
及其值 (1
) 的拆分是由 docker-compose 完成的。如果你想让一个环境变量有换行符,你需要完整的序列元素是一个多行标量,你可以通过以下方式做到这一点:
environment:
- key=value
- key2=value2
- |-
publicKey=-----BEGIN PUBLIC KEY-----
UAdhusaudu89Ajdsdoskdosadk*(Sd98798da
kaosdkOKdoksaoKDOaksdo98d7868sadajidas
我正在尝试在我的 docker-compose.yaml 文件中将 public 密钥设置为环境变量。
我知道我们可以使用 2 种不同的语法(不能同时使用):
一种是 YAML 映射,它使用语法 key: value
:
environment:
key: value
key2: value2
// And this is how we Muliline
publicKey: |-
-----BEGIN PUBLIC KEY-----
UAdhusaudu89Ajdsdoskdosadk*(Sd98798da
kaosdkOKdoksaoKDOaksdo98d7868sadajidas
我们还有 YAML list
语法,它使用语法 var = value
:
environment:
key=value
但是我怎样才能成功地多行使用 YAML 列表语法?
我也需要 换行符 (\n)。
当我尝试读取环境变量时,我得到一个字符串,其中没有 换行符 (/n) 我得到一个空格。
我得到:
-----BEGIN PUBLIC KEY----- KOSKODKSOAKD DOKSODKSAOD...
我实际需要的是:
-----BEGIN PUBLIC KEY-----\nKOSKODKSOAKD\nDOKSODKSAOD...
(注意/n)。
为什么我需要这个?
没有它,public 键 verification/validation 将失败。
现在我有一个函数可以遍历字符串并手动添加换行符,但它并不漂亮,如果我可以让它在 docker-compose 文件中工作,那就更好了。
在这里你可以获得帮助:
How do I break a string in YAML over multiple lines?
如果您不想在末尾附加换行符,请改用 >- 或 |-。
这个:
环境: 键=值
是一个有一个键environment
的映射,其值为key=value
。那没有进一步解析,=
在 YAML 中没有特殊含义(当然你的应用程序可以进一步解释这样的标量)
如果您想在块式 YAML 中使用列表语法,则需要使用块序列条目指示符,后跟 space (-
):
environment:
- key=value
再次 key=value
是 YAML 的单个标量。
要设置环境变量 DEBUG
,docker-compose documentation 使用:
web:
environment:
- DEBUG=1
环境变量名称 DEBUG
及其值 (1
) 的拆分是由 docker-compose 完成的。如果你想让一个环境变量有换行符,你需要完整的序列元素是一个多行标量,你可以通过以下方式做到这一点:
environment:
- key=value
- key2=value2
- |-
publicKey=-----BEGIN PUBLIC KEY-----
UAdhusaudu89Ajdsdoskdosadk*(Sd98798da
kaosdkOKdoksaoKDOaksdo98d7868sadajidas