Отсутствие версии обычно означает, что мы имеем дело с довольно старым docker-composer.yml
Читаем в документации:
Compose files that do not declare a version are considered “version 1”
В первой версии на первом уровне сразу шло описание сервисов:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis