Failed to deploy a stack volumes must be a mapping

Your compose file looks correct. Nothing in the docs indicate that the volume short syntax suddenly changed from a list to a map.

You are on a release candidate of Docker 29, so errors can be expected.

Can you try docker compose config to determine whether the problem is in the compose cli plugin?