|
1 | 1 | #!/usr/bin/with-contenv bash |
2 | 2 | # shellcheck shell=bash |
3 | 3 |
|
4 | | -rm -f ${HOME}/.jupyter/jupyter_lab_config.py |
| 4 | +# create new demo user for jupyterlab |
| 5 | +useradd -d /config/demo -g abc -G users demo |
5 | 6 |
|
6 | | -s6-setuidgid abc \ |
| 7 | +mkdir -p /config/.local/share |
| 8 | +chown abc:abc /config/.local/share |
| 9 | +chmod 775 /config/.local/share |
| 10 | + |
| 11 | +mkdir -p /data |
| 12 | +chown abc:abc /data |
| 13 | + |
| 14 | +SOURCE="/config/workspace" |
| 15 | +DEST="/config/demo" |
| 16 | + |
| 17 | +if [ ! -d "${DEST}" ]; then |
| 18 | + mkdir -p "${DEST}" |
| 19 | + |
| 20 | + EXCLUDE=( |
| 21 | + "assets" |
| 22 | + "tutorial" |
| 23 | + "work" |
| 24 | + ) |
| 25 | + declare -A EXCLUDE_MAP=() |
| 26 | + for ex in "${EXCLUDE[@]}"; do |
| 27 | + EXCLUDE_MAP["$ex"]=1 |
| 28 | + done |
| 29 | + |
| 30 | + for entry in "$SOURCE"/*; do |
| 31 | + [ -e "$entry" ] || continue |
| 32 | + |
| 33 | + name="$(basename "$entry")" |
| 34 | + |
| 35 | + if [[ -n "${EXCLUDE_MAP[$name]:-}" ]]; then |
| 36 | + continue |
| 37 | + fi |
| 38 | + |
| 39 | + cp -a --reflink=auto "$entry" "$DEST/" |
| 40 | + done |
| 41 | + |
| 42 | + chown demo:abc -R "${DEST}" |
| 43 | +fi |
| 44 | + |
| 45 | +rm -f /config/demo/.jupyter/jupyter_lab_config.py |
| 46 | + |
| 47 | +sudo -u demo \ |
7 | 48 | jupyter-lab --generate-config |
8 | 49 |
|
9 | 50 | # allow remote access |
10 | | -echo "c.ServerApp.ip = '0.0.0.0'" >> ${HOME}/.jupyter/jupyter_lab_config.py |
11 | | -echo "c.ServerApp.open_browser = False" >> ${HOME}/.jupyter/jupyter_lab_config.py |
12 | | -echo "c.ServerApp.port = 8888" >> ${HOME}/.jupyter/jupyter_lab_config.py |
13 | | -echo "c.ServerApp.allow_remote_access = True" >> ${HOME}/.jupyter/jupyter_lab_config.py |
| 51 | +echo "c.ServerApp.ip = '0.0.0.0'" >> /config/demo/.jupyter/jupyter_lab_config.py |
| 52 | +echo "c.ServerApp.open_browser = False" >> /config/demo/.jupyter/jupyter_lab_config.py |
| 53 | +echo "c.ServerApp.port = 8888" >> /config/demo/.jupyter/jupyter_lab_config.py |
| 54 | +echo "c.ServerApp.allow_remote_access = True" >> /config/demo/.jupyter/jupyter_lab_config.py |
14 | 55 |
|
15 | 56 | # set password if provided |
16 | 57 | if [ -n "${JUPYTER_PASSWORD_HASH}" ]; then |
17 | | - echo "c.PasswordIdentityProvider.hashed_password = u'${JUPYTER_PASSWORD_HASH}'" >> ${HOME}/.jupyter/jupyter_lab_config.py |
| 58 | + echo "c.PasswordIdentityProvider.hashed_password = u'${JUPYTER_PASSWORD_HASH}'" >> /config/demo/.jupyter/jupyter_lab_config.py |
18 | 59 | fi |
0 commit comments