YAML отступ в вашем docker-compose.yml
неверен. Файлы YAML полагаются на отступы пробела для определения структуры, но отступ для службы db
использует 3 пробела, где app
использует 2 пробела - при синтаксическом анализе вашего файла Compo интерпретировать db
(3 пробела) как подкомпонент app
(2 пробела), как вы делаете:
services:
app:
...
db:
...
Или эквивалент в json:
"services": {
"app": {
"db": {
...
}
}
}
Где вам нужно:
services:
app:
...
db:
...
Эквивалентен в json:
"services": {
"app": {
...
},
"db": {
...
}
}
Та же проблема для всех других определений служб и с volumes
. volumes
должен быть элементом верхнего уровня, но с пробелом он считывается подкомпонентом services