services: add Jupyter Lab
This commit is contained in:
parent
a3845f7712
commit
0a61fde0ff
|
@ -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
|
||||
|
|
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