1: 2021-07-05 (月) 08:54:26 iseki |
現: 2021-07-13 (火) 20:26:37 iseki |
| ** dockerspawner.SystemUserSpawner [#nc54a560] | | ** dockerspawner.SystemUserSpawner [#nc54a560] |
| + | - 2021 7/12 版 |
| - https://github.com/jupyterhub/dockerspawner/blob/master/dockerspawner/systemuserspawner.py | | - https://github.com/jupyterhub/dockerspawner/blob/master/dockerspawner/systemuserspawner.py |
| + | |
| + | - dockerspawner.DockerSpawner からの派生クラス |
| + | - DockerSpawner と同じパッケージ? 特にインストールしていないが,既に入っていた.(''注:これは最新版ではなかった'') |
| + | - jovyan ではなく,ログインユーザで使用可.ログインユーザのホームディレクトリをマウントする. |
| + | -- グループに応じてマウントディレクトリを指定可能. |
| + | -- グループ設定のUIが必要. |
| + | |
| + | - ただしログインユーザの情報が,ローカルに取れない場合(LDAPのユーザバインドでログインした場合),ホームディレクトリ等の情報が無いので途中でエラーを起こす. |
| + | -- 作りこめば大丈夫! |
| + | -- %%jovyan は潰せ!%% %%jovyan はテンプレートユーザだから潰しちゃダメ%% Dockerfile にしたからやっぱり潰す |
| + | |
| + | - see also [[DockerSpawner>JupyterHub/DockerSpawner]] |
| + | |
| + | #br |
| + | |
| + | *** この下以降の問題を全て解決した jupyterhub_config.py [#t00dcfcc] |
| + | - altfiles |
| + | -- see [[NSS]] |
| + | - 実験用 最新版 |
| + | -- 2021 07/12 |
| + | -- [[jupyterhub_config_systemuser.py>./jupyterhub_config.py]] (空白入れるのが途中で面倒になった) |
| + | |
| + | #br |
| + | |
| + | *** 上記 GitHub の最新版(2021 07/11)を入れると,コンテナ内で NB_* の環境変数でグループIDを取れる! [#pb6155b1] |
| + | - /usr/local/anaconda/envs/jupyterhub/lib/python3.8/site-packages/dockerspawner/systemuserspawner.py を差し替える. |
| + | - HOME も取れる |
| + | |
| + | iseki@299e2fa47bf9:~$ env |grep NB_ |
| + | NB_UID=10015 |
| + | NB_GID=10001 |
| + | NB_USER=iseki |
| + | #br |
| + | |
| + | **** グループ名も取れるように改造 [#y38d9264] |
| + | 129 def get_env(self): |
| + | 130 env = super(SystemUserSpawner, self).get_env() |
| + | 131 # relies on NB_USER and NB_UID handling in jupyter/docker-stacks |
| + | 132 env.update( |
| + | 133 dict( |
| + | 134 USER=self.user.name, # deprecated |
| + | 135 NB_USER=self.user.name, |
| + | 136 USER_ID=self.user_id, # deprecated |
| + | 137 NB_UID=self.user_id, |
| + | 138 HOME=self.homedir, |
| + | 139 ) |
| + | 140 ) |
| + | 141 if self.group_id >= 0: |
| + | 142 env.update(NB_GID=self.group_id) |
| + | 143 # Fumi.Iseki |
| + | 144 import grp |
| + | 145 gname = grp.getgrgid(self.group_id).gr_name |
| + | 146 env.update(NB_GNM=gname) |
| + | 147 return env |
| + | |
| + | *** Memo [#r4868d62] |
| + | - notebook_dir = /home/teacher/{username}/work が効かない.teacher が無視される. |
| #br | | #br |