运维中常见的 YAML 错误,往往不是“语法看不懂”,而是缩进、格式、语义这几类问题。下面按高频程度总结:
YAML 强制使用空格,不能用 Tab
❌ 错误示例:
services:
web:
image: nginx
ports:
- "80:80"
(使用了 Tab 或空格数不一致)
✅ 正确:
services:
web:
image: nginx
ports:
- "80:80"
✅ 建议:
YAML 中 key: value 冒号后必须有空格
❌ 错误:
name:tomcat
✅ 正确:
name: tomcat
含有特殊字符(: # @ % $)时容易出错
❌ 错误:
password: pa@ss:word#1
✅ 正确:
password: "pa@ss:word#1"
YAML 会把某些词当成布尔
❌ 易错:
enabled: yes
debug: no
✅ 若想当字符串:
enabled: "yes"
列表项必须对齐,且以 - 开头
❌ 错误:
ports:
- "80:80"
- "443:443"
✅ 正确:
ports:
- "80:80"
- "443:443"
一个文件多个 YAML 文档要用 ---
❌ 错误:
apiVersion: v1
kind: ConfigMap
---
apiVersion: v1
kind: Secret
(其实是对的,但常被误写成空格或注释)
✅ 正确:
apiVersion: v1
kind: ConfigMap
---
apiVersion: v1
kind: Secret
containers:
- name: app
image: nginx # ❌ image 应在 container 内
apiVersion / kind / metadata.nameimage 或 build✅ 解决:
file yamlfile.yaml
dos2unix yamlfile.yaml
如 Ansible、Helm:
❌ 错误:
command: echo {{ var }}
✅ 正确:
command: "echo {{ var }}"
yamllint file.yamlkubectl apply --dry-run=client -f x.yamldocker compose config如果你愿意,可以贴一段你的 YAML,我可以直接帮你找错并改好。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。