services: add Jupyter Lab
This commit is contained in:
parent
a3845f7712
commit
0a61fde0ff
|
@ -364,3 +364,21 @@ services:
|
||||||
env_file:
|
env_file:
|
||||||
- ./recipes/recipes.env
|
- ./recipes/recipes.env
|
||||||
- ./recipes/recipes.env.secret
|
- ./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
|
||||||
|
|
6
jupyter/hooks/install-jupyter-debugger.sh
Executable file
6
jupyter/hooks/install-jupyter-debugger.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
pip install --upgrade xeus-python
|
||||||
|
jupyter labextension install @jupyterlab/debugger
|
6
jupyter/hooks/install-jupyter-git.sh
Executable file
6
jupyter/hooks/install-jupyter-git.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
pip install --upgrade jupyterlab-git
|
||||||
|
jupyter lab build
|
5
jupyter/notebooks/.jupyter/jupyter_notebook_config.json
Normal file
5
jupyter/notebooks/.jupyter/jupyter_notebook_config.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"NotebookApp": {
|
||||||
|
"password": "sha1:1028b9608ef0:2c83acc24c76369e2c537f3c070b032f0d85311f"
|
||||||
|
}
|
||||||
|
}
|
52
letsencrypt/nginx/proxy-confs/lab.subdomain.conf
Normal file
52
letsencrypt/nginx/proxy-confs/lab.subdomain.conf
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
Reference in a new issue