Commit Graph

146 Commits

Author SHA1 Message Date
Peter Parente
2b33e23bb7 Make RTD the doc source of truth 2018-05-20 16:15:06 -04:00
Peter Parente
d29a0f6174 Merge pull request #633 from cam72cam/patch-2
Don't chown -R a user's home directory
2018-05-19 12:49:01 -04:00
Christian Mesh
e10d80d9cf Add the ability to specify chown arguments for both home and extra
If people have a use case for recursive chowns that's fine.  I think it's dangerous for people to use, but that's tailored to my use case.
2018-05-16 15:45:51 -04:00
Christian Mesh
dee887e6f9 Add CHOWN_EXTRA support
CHOWN_EXTRA is a comma separated list of directories to chown.
2018-05-15 11:13:55 -04:00
Masaru Nagaku
b81dad5ee8 send2trash not work
https://github.com/jupyter/notebook/issues/3130
Now, files not delete on https://hub.docker.com/r/jupyter/base-notebook/ and derived container images.
2018-05-08 20:16:49 +09:00
Christian Mesh
62360a7eff Don't chown -R a user's home directory
Only the top level permissions are set wrong due to kubernetes not being able to do this automatically.

This hits significant problems when the chown takes more than 30s and the pod fails to start
2018-05-07 14:46:18 -04:00
Peter Parente
9e52e6499d Update miniconda installer to 4.4 2018-04-30 22:05:26 -04:00
Tom Jorquera
a5d350fb0f Update jupyterlab and extensions
Update jupyterlab from 0.31 to 0.32.

Update the following extensions to matching versions:
- jupyterlab/hub-extension
- jupyter-widget/jupyterlab-manager
- jupyterlab_bokeh
2018-04-27 11:39:08 +02:00
Peter Parente
54623ca187 Force npm cache clean 2018-04-23 21:51:04 -04:00
Chris Ottinger
44d010e929 in start.sh ensure usename jovyan exists before attempting usermod 2018-04-13 15:56:46 +10:00
Peter Parente
d452f4e468 Remove tornado<5 pin 2018-04-07 22:26:30 -04:00
Chia-liang Kao
632ce8c2d2 Run additional scripts in /usr/local/bin/start-notebook.d/ 2018-03-29 16:26:20 +08:00
Chia-liang Kao
d7e3817af5 base image on ubuntu:xenial-20180228 2018-03-26 09:27:20 +08:00
Peter Parente
981f6e402d Notebook 5.4, force tornado 4.* at the outset 2018-03-19 08:41:56 -04:00
Joachim Jablon
3c61b079c2 Chown of home dir needs to be recursive 2018-03-09 19:01:41 +01:00
Graham Dumpleton
c545886d76 Add entries to passwd/group if running as user not in passwd file. 2018-02-20 19:17:55 +11:00
Aaron Vinson
ead1caecfa improve secure_path modification by storing in sudoers.d 2018-02-17 00:15:06 -08:00
Graham Dumpleton
f4bf2ba525 Merge branch 'master' of github.com:jupyter/docker-stacks into writable-home-directory 2018-02-17 11:33:31 +11:00
Graham Dumpleton
4d32b2182e Ensure anything under $HOME is always writable to group. 2018-02-17 11:31:55 +11:00
Graham Dumpleton
770007bb10 Use NB_UID for USER statement in Dockerfile so deployment platform can verify that image doesn't run as root. 2018-02-15 11:11:32 +11:00
Peter Parente
c54800018c Merge pull request #545 from chriszs/lab-31
Upgrade to the first JupyterLab beta v0.31
2018-02-04 14:28:34 -05:00
Chris Zubak-Skees
27cf7035ec Fix to check dict status code response in test_container_options 2018-02-04 13:01:28 -05:00
Chris Zubak-Skees
7c68f9cd4a Upgrade to the first JupyterLab beta v0.31 2018-02-04 00:41:30 -05:00
Bidek56
d28657d7b9 Added PYTHONPATH to sudo 2018-02-03 16:43:16 -05:00
Peter Parente
9089b66a98 Merge pull request #539 from clkao/jupterhub-lab
jupyterhub-lab support will be enabled if $JUPYTER_ENABLE_LAB is set.
2018-01-31 21:49:37 -05:00
Christian Mesh
272476e2d7 Gate chown /home/$NB_USER behind $CHOWN_HOME 2018-01-31 09:05:01 -05:00
Christian Mesh
b4d2d6f583 Support provisioned storage with incorrect permissions
I ran into an issue when trying to get this to work with a NFS server which I did not have direct control over (EFS).  As part of the PersistentVolumeClaim, there is no easy way to set the UID and GID of the created directory.on the networked FS.

My only concern with this chown is that some user out there might be running jupyterhub in an odd configuration where $NB_USER is not supposed to have these exact permissions on the storage.  I think this is quite unlikely, but it is worth mentioning. 

I chronicled my experiences with working around this issue and setting up z2jh on EFS in https://github.com/jupyterhub/zero-to-jupyterhub-k8s/issues/421 with @yuvipanda.
2018-01-31 08:51:52 -05:00
Chia-liang Kao
94657c2616 rework to use JUPYTER_ENABLE_LAB for both notebook and hub 2018-01-31 01:16:49 +08:00
Chia-liang Kao
ec2f79487f Enable jupyterhub-lab support. 2018-01-28 16:26:19 +08:00
Bonnotte, Nicolas
c6c6819a6e Add /bin to sudo secure_path 2018-01-18 17:51:06 +01:00
Peter Parente
a3cfda28da Verify path prefix in test 2018-01-04 22:51:16 -05:00
Peter Parente
6fa67cc500 Append $CONDA_DIR/bin to sudo secure_path
Retain behavior when su was used instead
2018-01-04 00:09:07 -05:00
Peter Parente
fb01654930 Fix test to use bash for multiple commands 2017-12-29 19:37:07 -05:00
Peter Parente
c560907ea3 Fix missing env vars (inc. PATH) in some cases
* Refactor to use sudo to become jovyna when the
  container starts as root
* Retain all environment variables when becoming
  jovyan
* Handle start.sh without additional commands when
  launching a container as NB_USER too
2017-12-29 19:22:42 -05:00
Troels Schwarz-Linnet
0766b5f005 This is to fix running SUDO as eihter the jovyan user or root.
Please refer to alias, in bottom of commit.

> dbn
Execute the command: jupyter notebook

> dbn bash
jovyan@eedcc93a837d:~$

> dbn start.sh
Execute the command:
exit

> dbnr
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Execute the command: jupyter notebook
Running as root is not recommended. Use --allow-root to bypass.
exit

> dbnr bash
root@893cb78b8c9c:~#

> dbnr start.sh
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Execute the command:
No arguments supplied
HOSTNAME=d45c52e788b7
TERM=xterm
SHELL=/bin/bash
NB_USER=jovyan
LC_ALL=en_US.UTF-8
PATH=/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
MINICONDA_VERSION=4.3.30
PWD=/home/jovyan
LANG=en_US.UTF-8
HOME=/home/jovyan
SHLVL=2
LANGUAGE=en_US.UTF-8
no_proxy=*.local, 169.254/16
DEBIAN_FRONTEND=noninteractive
CONDA_DIR=/opt/conda
NB_GID=100
NB_UID=1000
root@d45c52e788b7:~#

> dbnrs
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Granting jovyan sudo access
Execute the command: jupyter notebook
Copy/paste this URL into your browser when you connect for the first time, ....

> dbnrs bash
root@f293dce949db:~#

> dbnrs start.sh
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Granting jovyan sudo access
Execute the command:
No arguments supplied
HOSTNAME=d0cd57ea32e2
SHELL=/bin/bash
TERM=xterm
LC_ALL=en_US.UTF-8
USER=jovyan
SUDO_USER=root
SUDO_UID=0
USERNAME=jovyan
MAIL=/var/mail/jovyan
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
PWD=/home/jovyan
LANG=en_US.UTF-8
SHLVL=1
SUDO_COMMAND=/bin/bash -c env; PATH=$PATH; bash
HOME=/home/jovyan
LANGUAGE=en_US.UTF-8
LOGNAME=jovyan
SUDO_GID=0
_=/usr/bin/env
jovyan@d0cd57ea32e2:~$

> dbns
Container must be run as root to grant sudo permissions
Execute the command: jupyter notebook
Copy/paste this URL in..

> dbns bash
jovyan@ce5c2491fa32:~$

> dbns start.sh
Container must be run as root to grant sudo permissions
Execute the command:
exit

###### Build user setup
docker build -t $USER/base-notebook -f Dockerfile .

# Normal, dbn: docker-base-notebook
alias dbn='docker run -ti --rm -p 8888:8888 -v "$PWD":/home/jovyan/work --name base-notebook $USER/base-notebook'
# Root, dbnr: dbn with root
alias dbnr='docker run -ti --rm -p 8888:8888 --user root -v "$PWD":/home/jovyan/work --name base-notebook $USER/base-notebook'
# Jovyan SUDO, dbnr: dbn with SUDO for jovyan
alias dbnrs='docker run -ti --rm -p 8888:8888 --user root -e GRANT_SUDO=yes -v "$PWD":/home/jovyan/work --name base-notebook $USER/base-notebook'
# Root, fail to sudo for jovyan.
alias dbns='docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes -v "$PWD":/home/jovyan/work --name base-notebook $USER/base-notebook'
2017-12-29 11:38:53 -05:00
Troels Schwarz-Linnet
412a17b884 Fix for granting SUDO to jovyan user and run bash commands.
Test image builded with:
> docker build -t $USER/base-notebook -f Dockerfile .

> docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes --user root jupyter/base-notebook:033056e6d164 bash
root@84db8819258d:~#

docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes --user root $USER/base-notebook bash
> root@c23f1fd7d279:~#

> docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes --user root jupyter/base-notebook:033056e6d164 start.sh
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Granting jovyan sudo access
Execute the command:
HOSTNAME=a231202e6d1a
TERM=xterm
SHELL=/bin/bash
NB_USER=jovyan
LC_ALL=en_US.UTF-8
USER=jovyan
MAIL=/var/mail/jovyan
PATH=/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MINICONDA_VERSION=4.3.30
PWD=/home/jovyan
LANG=en_US.UTF-8
GRANT_SUDO=yes
HOME=/home/jovyan
SHLVL=1
LANGUAGE=en_US.UTF-8
no_proxy=*.local, 169.254/16
LOGNAME=jovyan
DEBIAN_FRONTEND=noninteractive
CONDA_DIR=/opt/conda
NB_GID=100
NB_UID=1000
_=/usr/bin/env
tlinnet@linmac:base-notebook$

> docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes --user root $USER/base-notebook start.sh
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Granting jovyan sudo access
Execute the command:
No arguments supplied
HOSTNAME=364e5fc77224
SHELL=/bin/bash
TERM=xterm
LC_ALL=en_US.UTF-8
USER=jovyan
SUDO_USER=root
SUDO_UID=0
USERNAME=jovyan
MAIL=/var/mail/jovyan
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
PWD=/home/jovyan
LANG=en_US.UTF-8
SHLVL=1
SUDO_COMMAND=/bin/bash -c env; PATH=$PATH; bash
HOME=/home/jovyan
LANGUAGE=en_US.UTF-8
LOGNAME=jovyan
SUDO_GID=0
_=/usr/bin/env
jovyan@364e5fc77224:~$

> docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes --user root jupyter/base-notebook:033056e6d164 start.sh echo hello
tlinnet@linmac:base-notebook$ docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes --user root jupyter/base-notebook:033056e6d164 start.sh echo hello
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Granting jovyan sudo access
Execute the command: echo hello
hello
tlinnet@linmac:base-notebook$

> docker run -ti --rm -p 8888:8888 -e GRANT_SUDO=yes --user root $USER/base-notebook start.sh echo hello
Set username to: jovyan
usermod: no changes
Set jovyan GID to: 100
Granting jovyan sudo access
Execute the command: echo hello
hello
tlinnet@linmac:base-notebook$
2017-12-29 11:38:53 -05:00
Peter Parente
706194f7c0 Update jupyterlab hub ext to 0.7.0 2017-12-17 12:03:58 -05:00
Peter Parente
b45fe72323 Updating jupyterlab to 0.30.* 2017-12-17 11:41:19 -05:00
Peter Parente
240285841a Remove mount permissions test
Not really testing a docker-stacks feature, only
that docker host permissions work
2017-12-16 23:03:26 -05:00
Peter Parente
167a0cb0c4 Fix mount test on CI 2017-12-02 22:03:44 -05:00
Peter Parente
803dc0c75b Fix bogus assert, add mount test 2017-12-01 22:52:00 -05:00
Peter Parente
463490fb26 MNT: Clean npm packages and JupyterLab artifacts
Spotted while writing tests
2017-11-30 00:16:09 -05:00
Peter Parente
b9139131da Tests for NB_UID, NB_GID, GRANT_SUDO options
* Improve test container teardown
* Fix needless groupmod when NB_GID is unchanged
2017-11-30 00:15:17 -05:00
Peter Parente
8a59d74813 Refactor to share fixtures with option tests 2017-11-28 23:57:05 -05:00
Peter Parente
6ba0d59446 Add placeholder tests for base-notebook 2017-11-27 23:28:11 -05:00
Min RK
3ede1c190d Merge pull request #498 from minrk/bump-lab
bump jupyterlab and install jupyter-labhub extension
2017-11-14 14:05:38 +01:00
Min RK
3e07de95cb bump jupyterlab and install jupyter-labhub extension 2017-11-14 12:00:37 +01:00
Min RK
65e5f24aa6 bump miniconda version 2017-11-10 12:55:15 +01:00
cglewis
d91d4a8c48 MAINTAINER is deprecated, using LABEL now 2017-10-31 20:17:06 -07:00
Peter Parente
da2c5a4d00 Merge pull request #485 from tylere/master
Update jupyterlab to 0.28
2017-10-22 17:30:51 -04:00