15: 2021-07-17 (土) 18:02:53 iseki |
現: 2021-10-16 (土) 14:22:59 iseki |
| or | | or |
| (jupyterhub) # pip install dockerspawner | | (jupyterhub) # pip install dockerspawner |
| + | |
| + | - pip --no-cache-dir install git+https://github.com/jupyterhub/dockerspawner.git をお勧め |
| + | |
| + | #br |
| | | |
| *** 設定 [#i5887782] | | *** 設定 [#i5887782] |
| #br | | #br |
| | | |
- | **** xxx [#s5b3175e] | + | **** datascience-notebook [#s5b3175e] |
| - docker pull jupyter/datascience-notebook | | - docker pull jupyter/datascience-notebook |
| #br | | #br |
| 8 cp /etc/subgid- /etc/subgid | | 8 cp /etc/subgid- /etc/subgid |
| 9 cp /etc/subuid- /etc/subuid | | 9 cp /etc/subuid- /etc/subuid |
| + | |
| + | - [[解決>#xeab91b6]] |
| + | #br |
| | | |
| **** [[start.sh(改)>./start.sh-kai]], [[start.sh(オリジナル)>./start.sh]][#q31443f9] | | **** [[start.sh(改)>./start.sh-kai]], [[start.sh(オリジナル)>./start.sh]][#q31443f9] |
| | | |
| - /usr/local/anaconda/envs/jupyterhub/lib/python3.8/site-packages/dockerspawner/ | | - /usr/local/anaconda/envs/jupyterhub/lib/python3.8/site-packages/dockerspawner/ |
- | -- __init__.py | + | -- edit __init__.py |
| -- ex.) nsldockerspawner.py | | -- ex.) nsldockerspawner.py |
| ...... | | ...... |
| from dockerspawner import DockerSpawner | | from dockerspawner import DockerSpawner |
| + | |
| class NSLDockerSpawner(DockerSpawner): | | class NSLDockerSpawner(DockerSpawner): |
| ...... | | ...... |
| #br | | #br |
| | | |
- | **** ProjectDockerSpawner [#d9dde499] | + | **** MDLDockerSpawner [#d9dde499] |
| - 参考: https://gist.github.com/marufeuille/596cf6f9e26fa6fcb7e304d5b163c7c8 | | - 参考: https://gist.github.com/marufeuille/596cf6f9e26fa6fcb7e304d5b163c7c8 |
| | | |
| 576 | | 576 |
| 577 return super(ProjectDockerSpawner, self).start() | | 577 return super(ProjectDockerSpawner, self).start() |
| + | |
| #br | | #br |
| | | |
- | **** NSLDockerSpaewner [#rdae5a79] | + | |
| #br | | #br |
| | | |
- | *** Trouble Shooting [#j137c8ff] | + | *** Tools [#ke66d2d2] |
| + | **** アイドルしている Docker コンポーネントを殺す! [#uf1854cf] |
| + | ***** %%jupyterhub-idle-culler%% [#eb3404d4] |
| + | - jupyterhub_idle_culler |
| + | - https://github.com/jupyterhub/jupyterhub-idle-culler |
| | | |
- | **** 何故かイメージを変更して commit すると引数が2重になる? (''非常に重要な問題'')[#xeab91b6] | + | - pip で入れると No module named が出て,動かない模様 |
- | - docker logs のでエラーメッセージ | + | -- No module named jupyterhub_idle_culler |
- | -- [C 2021-07-11 13:52:21.786 SingleUserNotebookApp application:89] Bad config encountered during initialization: Error loading argument SingleUserNotebookApp.ip=['0.0.0.0', '0.0.0.0'], ip only accepts one value, got 2: ['0.0.0.0', '0.0.0.0'] | + | |
- | - /usr/local/anaconda/envs/jupyterhub/lib/python3.8/site-packages/dockerspawner/dockerspawner.py L804 | + | |
- | -- get_command() の cmd + self.get_args() で cmd に既に引数が入っている? | + | |
- | - 最新版 (Project用) [[jupyterhub_config.py>../SystemUserSpawner/jupyterhub_config.py]] 内で対症療法中 | + | |
| | | |
- | - ''上記の Dockerfile を使って作成すれば問題無し'' | + | - GitHub から直接入れる. |
| + | -- git clone https://github.com/jupyterhub/jupyterhub-idle-culler.git |
| + | -- cd jupyterhub-idle-culler |
| + | -- python setup.py build |
| + | -- python setup.py build |
| + | |
| + | - ''期待通りに動かん!'' |
| + | |
| + | - jupyterhub_config.py |
| + | lmport sys |
| + | |
| + | c.JupyterHub.services = [ |
| + | { |
| + | 'name': 'idle-culler', |
| + | 'admin': True, |
| + | 'command': [ |
| + | sys.executable, |
| + | '-m', 'jupyterhub_idle_culler', |
| + | '--timeout=3600' |
| + | ], |
| + | } |
| + | ] |
| + | |
| + | ***** cull_idle_servers.py [#zc9428f7] |
| + | - jupyterhub-idle-culler は期待通りに動かない.cull_idle_servers.py の方が良いみたい. |
| + | - https://github.com/jupyterhub/jupyterhub/tree/a6b7e303df03865d6420f6bccdf627b39f1d0dc1/examples/cull-idle |
| + | |
| + | - 実行状態(run)も確実に殺してくれる(stop でなくて, rm). |
| + | - Webで開いたままだとダメ |
| + | |
| + | |
| + | - jupyterhub_config.py |
| + | import sys |
| + | |
| + | c.JupyterHub.services = [ |
| + | { |
| + | 'name': 'idle-culler', |
| + | 'admin': True, |
| + | 'command': [ |
| + | sys.executable, |
| + | '/usr/local/bin/cull_idle_servers.py', |
| + | '--timeout=3600' |
| + | ], |
| + | } |
| + | ] |
| #br | | #br |
| + | |
| + | ** Trouble Shooting [#j137c8ff] |
| | | |
| **** 新しいファイルがパーミッションが無いとして,作成できない. [#z72fb1be] | | **** 新しいファイルがパーミッションが無いとして,作成できない. [#z72fb1be] |
| | | |
| * Hack [#gdd93e11] | | * Hack [#gdd93e11] |
| + | *** カスタマイズ [#p63e4677] |
| + | - https://jupyterhub.readthedocs.io/en/stable/reference/spawners.html |
| + | #br |
| | | |
| *** DockerSpawner が self.get_env() で取れる情報 [#bb38d813] | | *** DockerSpawner が self.get_env() で取れる情報 [#bb38d813] |
| - [[start.sh(改)>./start.sh-kai]] | | - [[start.sh(改)>./start.sh-kai]] |
| #br | | #br |
| + | |
| + | **** 起動コマンド [#mde3032e] |
| + | tini -g -- \ |
| + | start-notebook.sh --ip=0.0.0.0 --port=8888 --notebook-dir=/home/teacher/iseki/jupyter --SingleUserNotebookApp.default_url=/lab |
| + | |
| + | sudo -E -H -u iseki PATH=/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin XDG_CACHE_HOME=/home/teacher/iseki/.cache PYTHONPATH= \ |
| + | jupyterhub-singleuser --ip=0.0.0.0 --port=8888 --notebook-dir=/home/teacher/iseki/jupyter --SingleUserNotebookApp.default_url=/lab |
| | | |
| *** Docker の起動 [#o46a3f42] | | *** Docker の起動 [#o46a3f42] |
| + args.append(self.format_string(arg)) | | + args.append(self.format_string(arg)) |
| return args | | return args |
| + | |
| def run_pre_spawn_hook(self): | | def run_pre_spawn_hook(self): |