Notebook server spawning

I am running an nginx reverse proxy and jupyterhub in docker (ubuntu 18.04) . I am getting this error : Unhandled error starting alvin's server: Incompatible options have been provided for the bind type mount.
The browser throws and error: API request failed (500): error

from my file:

c.JupyterHub.spawner_class = 'dockerspawner.SwarmSpawner'
network_name = os.environ['DOCKER_NETWORK_NAME']
c.SwarmSpawner.network_name = network_name
c.SwarmSpawner.use_internal_ip = True

## Pass the network name as argument to spawned containers
c.SwarmSpawner.extra_host_config = {'network_mode': network_name}
c.SwarmSpawner.host_ip = ''
notebook_dir = os.environ.get('NOTEBOOK_DIR') or '/home/joyvan/work'
c.SwarmSpawner.notebook_dir = notebook_dir

## Mount the user's notebook directory in the container
c.SwarmSpawner.volumes = { 'jupyterhub-user-{username}': notebook_dir }

## Remove containers once they are stopped
c.SwarmSpawner.remove_containers = True

## For debugging arguments passed to spawned containers
c.SwarmSpawner.debug = True

from my docker.yml file

    image: sgsupdocker/jupyterhub-onbuild:060319.2
    hostname: jupyterhubserver
      - /var/run/docker.sock:/var/run/docker.sock
      - /vol_b/exchange:/home/joyvan/work
          - jupyterhubserver
      DOCKER_NETWORK_NAME: jupyterhub
      NOTEBOOK_DIR: /home/joyvan/work
      replicas: 1
          - node.role == manager

from the container logs:

Traceback (most recent call last):
      File "/opt/conda/lib/python3.6/site-packages/tornado/", line 1699, in _execute
        result = await result
      File "/opt/conda/lib/python3.6/site-packages/jupyterhub/apihandlers/", line 414, in post
        await self.spawn_single_user(user, server_name, options=options)
      File "/opt/conda/lib/python3.6/site-packages/jupyterhub/handlers/", line 889, in spawn_single_user
        timedelta(seconds=self.slow_spawn_timeout), finish_spawn_future
      File "/opt/conda/lib/python3.6/site-packages/jupyterhub/handlers/", line 807, in finish_user_spawn
        await spawn_future
      File "/opt/conda/lib/python3.6/site-packages/jupyterhub/", line 642, in spawn
        raise e
      File "/opt/conda/lib/python3.6/site-packages/jupyterhub/", line 546, in spawn
        url = await gen.with_timeout(timedelta(seconds=spawner.start_timeout), f)
      File "/opt/conda/lib/python3.6/site-packages/dockerspawner/", line 983, in start
        obj = yield self.create_object()
      File "/opt/conda/lib/python3.6/site-packages/dockerspawner/", line 180, in create_object
      File "/opt/conda/lib/python3.6/site-packages/dockerspawner/", line 117, in mounts
        for host_loc, vol in self.volume_binds.items()
      File "/opt/conda/lib/python3.6/site-packages/dockerspawner/", line 117, in <listcomp>
        for host_loc, vol in self.volume_binds.items()
      File "/opt/conda/lib/python3.6/site-packages/docker/types/", line 242, in __init__
        'Incompatible options have been provided for the bind '
    docker.errors.InvalidArgument: Incompatible options have been provided for the bind type mount.

I think I have included all the relevant information. Am I getting this error because I am NOT using a named docker volume? The reason I am not using a named docker volume is becuase I keep getting a permissions denied when the permissions for both the destination and the source are set to ugo+rw. Any insights would be greatly appreciated.