我在运行docker-compose.yml时遇到麻烦。我从github页面检索了一个预制的docker-compose文件,并根据我的需要对其进行了自定义。尝试解析它时,它返回错误。
我对yaml语法不是很了解,所以我很难理解错误源于何处。
docker-compose.yml文件中的代码发布在此pastebin上:https://pastebin.com/XjM2S11i
解析时返回以下错误:
ERROR:
while parsing a block mapping
in "<unicode string>", line 5, column 1:
version: "3.6"
^
expected <block end>, but found '<block mapping start>'
in "<unicode string>", line 149, column 3:
watchtower:
^
有人可以帮助我修复语法/缩进吗?非常感谢。
答案 0 :(得分:3)
文件中有第115行:
phpmyadmin:
hostname: phpmyadmin
因此,根级映射的键phpmyadmin
的值是一个映射本身,它以键hostname
开头,该键缩进了四个位置。
然后在第149行上:
watchtower:
container_name: watchtower
仅缩进两个位置。您必须确定watchtower
的父节点是什么:它是根级映射的键,然后需要向左刷新,或者是与{{1}相同的映射中的键}是一个关键,然后需要缩进四个位置。还是需要在hostname
之前的根级别映射中插入密钥。
我强烈建议始终对映射值和序列项使用两个位置的数量缩进(这意味着对序列项指示符使用 no 偏移):>
watchtower
您的docker-compose YAML文件是用于映射的至少2个和4个位置缩进以及针对序列项至少2个,3个和4个位置缩进的大杂烩。
该docker-compose没有抱怨:
a:
b:
- 1
- 2
文件中的
仍然是意外的,因为它是无效的有效YAML。
答案 1 :(得分:0)
使用http://www.yamllint.com/,对docker-compose.yml进行'Lint'(语法检查),更正语法错误,然后重新运行Docker命令。