Вы поместили свой Yaml через валидатор yaml?
Он действительно чувствителен к отступу, поэтому, если вы поместите слишком много пробелов в каком-то месте, у вас может быть странное поведение даже с чем-то допустимым.
Я пытался пропустить ваш файл через этот валидатор (http://www.yamllint.com/), и он стал ложным при копировании / вставке в него. Старайтесь соблюдать два пробела при работе с дочерним элементом, например так:
services:
web:
image: pragneshpanchal/httpdsrv
В настоящий момент я вижу несколько типов интервалов, и это всегда будет приводить к ошибкам. Как в портах и первом сетевом вызове.
Для второго сетевого вызова он должен быть натот же уровень, что и для служб.
И, наконец, как указано в ответе Марка, в состоянии перезагрузки отсутствует пробел.