将 YAML 转换为 JSON 时出错:yaml:第 10 行:在此上下文中不允许映射值



我一直在试图解决这个问题几个小时。我看不出是什么导致了这个问题。它似乎是 YAML 第 10 行的内容。我尝试过带引号和不带引号,并启动一个新文件,以防有一些损坏的值。

apiVersion: apps/v1
kind: Deployment
metadata:
name: "foyer-api"
namespace: "foyer-api"
spec:
replicas: 3
selector:
matchLabels:
app: "foyer-api"
template:
metadata:
labels:
app: "foyer-api"
spec:
containers:
- image: foyer-api
imagePullPolicy: Always
name: "foyer-api"
ports:
- containerPort: 80

此错误主要发生在复制并粘贴到 yaml 中时,这可能会导致语法错误。

考虑将 yaml 粘贴到 YAML 棉绒中(例如这个(,在某些情况下,这有助于更快地识别问题。

问题出在别处。请在imagePullPolicy: Always行的开头添加一个空格。所以它必须是这样的:

- image: foyer-api
imagePullPolicy: Always

更正缩进后,

apiVersion: apps/v1
kind: Deployment
metadata:
name: "foyer-api"
namespace: "foyer-api"
spec:
replicas: 3
selector:
matchLabels:
app: "foyer-api"
template:
metadata:
labels:
app: "foyer-api"
spec:
containers:
- image: foyer-api
imagePullPolicy: Always
name: "foyer-api"
ports:
- containerPort: 80

它可以毫无问题地转换为 JSON

{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "foyer-api",
"namespace": "foyer-api"
},
"spec": {
"replicas": 3,
"selector": {
"matchLabels": {
"app": "foyer-api"
},
"template": {
"metadata": {
"labels": {
"app": "foyer-api"
}
},
"spec": {
"containers": [
{
"image": "foyer-api",
"imagePullPolicy": "Always",
"name": "foyer-api",
"ports": [
{
"containerPort": 80
}
]
}
]
}
}
}
}
}

最新更新