The syntax should be just fine, if you switch to absolute paths on the source value as well.
Though, on swarm stack deployments you typicaly would use a config instead of a bind, because the bind will fail if you have more than one node that fullfils the placement contrain and the file does not exist in the same location on every node!
You are not seriously running a swarm and build your own images without running a private container registry, are you? Dock swarm is neither responsible to distribute the image amongst nodes (hint: run your own private container registry), nor distribute the content of volumes amongst them (hint: use a remote share, preferably nfsv4).
You should make it a habit to lookup configuration items in the compose file version 3 reference when it commes to swarm stack compose files.
Take a look at the output of: docker stack ps ${stackname} --no-trunc.
Some people read docs, get to a certain point and then share the relevant information and ask for support…
Others don’t care to read docs, and directly ask for help, without even providing enough relevant details.
Honestly, while I enjoy helping the first kind, it is cumbersom to help the second kind.