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 jupyterhub_config.py 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 = '0.0.0.0'
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
services:
jupyterhubserver:
image: sgsupdocker/jupyterhub-onbuild:060319.2
hostname: jupyterhubserver
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /vol_b/exchange:/home/joyvan/work
networks:
jupyterhub:
aliases:
- jupyterhubserver
environment:
DOCKER_NETWORK_NAME: jupyterhub
NOTEBOOK_DIR: /home/joyvan/work
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
from the container logs:
Traceback (most recent call last):
File "/opt/conda/lib/python3.6/site-packages/tornado/web.py", line 1699, in _execute
result = await result
File "/opt/conda/lib/python3.6/site-packages/jupyterhub/apihandlers/users.py", line 414, in post
await self.spawn_single_user(user, server_name, options=options)
File "/opt/conda/lib/python3.6/site-packages/jupyterhub/handlers/base.py", 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/base.py", line 807, in finish_user_spawn
await spawn_future
File "/opt/conda/lib/python3.6/site-packages/jupyterhub/user.py", line 642, in spawn
raise e
File "/opt/conda/lib/python3.6/site-packages/jupyterhub/user.py", line 546, in spawn
url = await gen.with_timeout(timedelta(seconds=spawner.start_timeout), f)
File "/opt/conda/lib/python3.6/site-packages/dockerspawner/dockerspawner.py", line 983, in start
obj = yield self.create_object()
File "/opt/conda/lib/python3.6/site-packages/dockerspawner/swarmspawner.py", line 180, in create_object
mounts=self.mounts,
File "/opt/conda/lib/python3.6/site-packages/dockerspawner/swarmspawner.py", line 117, in mounts
for host_loc, vol in self.volume_binds.items()
File "/opt/conda/lib/python3.6/site-packages/dockerspawner/swarmspawner.py", line 117, in <listcomp>
for host_loc, vol in self.volume_binds.items()
File "/opt/conda/lib/python3.6/site-packages/docker/types/services.py", 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.
cheers,
alvin