не очень понял про директории, у меня с похожей структурой вроде всё работает
docker-compose всегда берёт последний каталог в качестве имени проекта, который добавляет к имени сервиса. Т.о, если об этом забыть, и сделать, например,
/frontend/env1/site1
/frontend/env1/site2
/frontend/env2/site1 то с общей сеткой (где гейтвей) всё сломается. (Идея была такая, что docker-compose.yml создаётся из шаблона, где сервис просто www).