Чем не устраивает официальный? https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/
Если зайти в контейнер nginx, php и сделать из него ping mysql, каков будет ответ?
Покажите нам? Видите там все свои сервисы (nginx, mysql, php)?
В dockerfile Вы делаете expose порту 5000 (судя по сообщению чуть выше). А в docker-compose пробрасываете с 8080 хоста на 80 внутри контейнера. И как по вашему оно заработает?