services: add Jupyter Lab

This commit is contained in:
Bruno BELANYI 2020-07-30 19:18:36 +02:00
parent a3845f7712
commit 0a61fde0ff
5 changed files with 87 additions and 0 deletions

View file

@ -364,3 +364,21 @@ services:
env_file:
- ./recipes/recipes.env
- ./recipes/recipes.env.secret
jupyter:
image: jupyter/datascience-notebook:lab-2.1.5
restart: unless-stopped
container_name: jupyter
volumes:
- ./jupyter/notebooks:/home/jovyan/
- ./jupyter/hooks/:/usr/local/bin/start-notebook.d/
environment:
- JUPYTER_ENABLE_LAB=yes
- NB_UID=1000
- NB_GID=1000
- CHOWN_HOME=yes
- GRANT_SUDO=yes
- RESTARTABLE=yes
expose:
- 8888
user: root

View file

@ -0,0 +1,6 @@
#!/bin/sh
set -e
pip install --upgrade xeus-python
jupyter labextension install @jupyterlab/debugger

View file

@ -0,0 +1,6 @@
#!/bin/sh
set -e
pip install --upgrade jupyterlab-git
jupyter lab build

View file

@ -0,0 +1,5 @@
{
"NotebookApp": {
"password": "sha1:1028b9608ef0:2c83acc24c76369e2c537f3c070b032f0d85311f"
}
}

View file

@ -0,0 +1,52 @@
# make sure that your dns has a cname set for lab and that your lab container is named jupyter
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name lab.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
# enable for ldap auth, fill in ldap details in ldap.conf
#include /config/nginx/ldap.conf;
# enable for Authelia
include /config/nginx/authelia-server.conf;
location / {
# enable the next two lines for http auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
# enable the next two lines for ldap auth
#auth_request /auth;
#error_page 401 =200 /ldaplogin;
# enable for Authelia
include /config/nginx/authelia-location.conf;
include /config/nginx/proxy.conf;
resolver 127.0.0.11 valid=30s;
set $upstream_app jupyter;
set $upstream_port 8888;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
location ~* /(api/kernels/[^/]+/(channels|iopub|shell|stdin)|terminals/websocket)/? {
# enable for Authelia
include /config/nginx/authelia-location.conf;
include /config/nginx/proxy.conf;
resolver 127.0.0.11 valid=30s;
set $upstream_app jupyter;
set $upstream_port 8888;
set $upstream_proto http;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}