#author("2023-08-29T02:48:09+00:00","default:iseki","iseki")
** dockerspawner.SystemUserSpawner [#nc54a560]
- 2021 7/12 版
- https://github.com/jupyterhub/dockerspawner/blob/master/dockerspawner/systemuserspawner.py

- dockerspawner.DockerSpawner からの派生クラス
- DockerSpawner と同じパッケージ? 特にインストールしていないが,既に入っていた.(''注:これは最新版ではなかった'')
- jovyan ではなく,ログインユーザで使用可.ログインユーザのホームディレクトリをマウントする.
-- グループに応じてマウントディレクトリを指定可能.
-- グループ設定のUIが必要. 

- ただしログインユーザの情報が,ローカルに取れない場合(LDAPのユーザバインドでログインした場合),ホームディレクトリ等の情報が無いので途中でエラーを起こす.
-- 作りこめば大丈夫!
-- %%jovyan は潰せ!%% %%jovyan はテンプレートユーザだから潰しちゃダメ%%  Dockerfile にしたからやっぱり潰す

- see also [[DockerSpawner>JupyterHub/DockerSpawner]]



*** この下以降の問題を全て解決した jupyterhub_config.py [#t00dcfcc]
- altfiles  
-- see [[NSS]]
- 実験用 最新版
-- 2021 07/12
-- [[jupyterhub_config_systemuser.py>./jupyterhub_config.py]] (空白入れるのが途中で面倒になった)



*** 上記 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


**** グループ名も取れるように改造 [#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 が無視される.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS