From 837a6a002f9f9747b390f3119caecc640cd027d4 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:15:07 +0100 Subject: [PATCH 01/11] Upgrade and validation for Ubuntu 16 --- .travis.yml | 1 + Makefile | 3 +++ doc/source/deployment.rst | 22 ++++++++++++++++------ doc/source/troubleshoot/docker.rst | 9 +++++++++ 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index cc3d13bcb..413f3569c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ before_install: - make deps - python -c "import setuptools; print(setuptools.__version__)" - pip --version + - make pythondeps install: - make install diff --git a/Makefile b/Makefile index 57885f71f..6bd2bfc8c 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,9 @@ deps: pip3 install --upgrade pip setuptools # Currently set to 1.4.0dev fixing X-Forward behavior sudo npm install -g "git://github.com/jupyterhub/configurable-http-proxy.git#f54c6a46a235f17cb6c36046a913d37fa45ec95b" + +.PHONY: pythondeps +pythondeps: pip3 install -r requirements.txt .PHONY: devdeps diff --git a/doc/source/deployment.rst b/doc/source/deployment.rst index c172b26ac..9b836a64f 100644 --- a/doc/source/deployment.rst +++ b/doc/source/deployment.rst @@ -15,17 +15,27 @@ Deployment of the complete system in a single machine/VM. git clone https://github.com/simphony/simphony-remote -#. Create and activate a virtual environment:: +#. Install dependencies. You might be prompted for the root password to execute this:: - make venv - . venv/bin/activate + make deps -#. Install apt dependencies. You need to be root to execute this:: +#. Make sure your docker server is running, and your user is allowed to connect to + the docker server. You obtain this by:: + + sudo service docker start + sudo addgroup your_username docker + + and logging out and in again. Check if your docker server is operative by running:: - make aptdeps + docker info + +#. Create and activate a virtual environment:: -#. Install python dependencies:: + make venv + . venv/bin/activate +#. Install the python dependencies:: + make pythondeps #. Generate the SSL certificates if you do not already have them. The diff --git a/doc/source/troubleshoot/docker.rst b/doc/source/troubleshoot/docker.rst index 1270298cf..ff61793bb 100644 --- a/doc/source/troubleshoot/docker.rst +++ b/doc/source/troubleshoot/docker.rst @@ -13,3 +13,12 @@ you recently recreated your default docker machine, or the docker machine is no Make sure that your docker environment (DOCKER_HOST environment variable) is compatible with the docker machine current ip address (`docker-machine ip`). If not, reconfigure your docker machine environment with `eval $(docker-machine env)`. + +Error when connecting to docker: Permission denied +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Check if your `/var/run/docker.sock` is accessible and readable. The likely cause is +that your current user is not in the `docker` group. Fix this by running:: + + sudo addgroup your_username docker + From 770aa79c37c2705c010c05c1b7874e116b25c878 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:24:39 +0100 Subject: [PATCH 02/11] Adapted makefile for 16.04 and Non-Linux --- Makefile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6bd2bfc8c..80e808be4 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,17 @@ venv: deps: @echo "Installing apt dependencies" @echo "---------------------------" + if [ `uname -s` != "Linux" ]; then \ + echo "ERROR: Cannot run on non-Linux systems"; \ + false; \ + fi -sudo apt-get update - sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y docker-engine npm nodejs-legacy python3-pip python3.4-venv + if [ `lsb_release -rs` = "16.04" ]; then \ + packages="docker-engine npm nodejs-legacy python3-pip python3.4-venv"; \ + else \ + packages="docker-engine npm nodejs-legacy python3-pip python3.4-venv"; \ + fi; \ + sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y ${packages} pip3 install --upgrade pip setuptools # Currently set to 1.4.0dev fixing X-Forward behavior sudo npm install -g "git://github.com/jupyterhub/configurable-http-proxy.git#f54c6a46a235f17cb6c36046a913d37fa45ec95b" From 909d1fcb917447f777b467e62ca23d09a0020698 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:26:52 +0100 Subject: [PATCH 03/11] Fixed package names in ubuntu 16 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 80e808be4..0677fcd82 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ deps: fi -sudo apt-get update if [ `lsb_release -rs` = "16.04" ]; then \ - packages="docker-engine npm nodejs-legacy python3-pip python3.4-venv"; \ + packages="docker.io npm nodejs-legacy python3-pip python3-venv"; \ else \ packages="docker-engine npm nodejs-legacy python3-pip python3.4-venv"; \ fi; \ From ffb3277bcd19ac7664b2328de29a9bd00932ea03 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:28:38 +0100 Subject: [PATCH 04/11] Upgrading pip and setuptools in pythondeps --- .travis.yml | 2 +- Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 413f3569c..3e69ae66c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,9 +11,9 @@ addons: before_install: - firefox --version - make deps + - make pythondeps - python -c "import setuptools; print(setuptools.__version__)" - pip --version - - make pythondeps install: - make install diff --git a/Makefile b/Makefile index 0677fcd82..edb76363c 100644 --- a/Makefile +++ b/Makefile @@ -21,12 +21,12 @@ deps: packages="docker-engine npm nodejs-legacy python3-pip python3.4-venv"; \ fi; \ sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y ${packages} - pip3 install --upgrade pip setuptools # Currently set to 1.4.0dev fixing X-Forward behavior sudo npm install -g "git://github.com/jupyterhub/configurable-http-proxy.git#f54c6a46a235f17cb6c36046a913d37fa45ec95b" .PHONY: pythondeps pythondeps: + pip3 install --upgrade pip setuptools pip3 install -r requirements.txt .PHONY: devdeps From 0230af0c71379908b57e668a7101971cf5023218 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:29:44 +0100 Subject: [PATCH 05/11] Fixed variable name --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index edb76363c..4c57a8195 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ deps: else \ packages="docker-engine npm nodejs-legacy python3-pip python3.4-venv"; \ fi; \ - sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y ${packages} + sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y $$packages # Currently set to 1.4.0dev fixing X-Forward behavior sudo npm install -g "git://github.com/jupyterhub/configurable-http-proxy.git#f54c6a46a235f17cb6c36046a913d37fa45ec95b" From 1e4da490adf29d936f3920ed69095bef622a9c52 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:42:02 +0100 Subject: [PATCH 06/11] Added more details --- doc/source/deployment.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/source/deployment.rst b/doc/source/deployment.rst index 9b836a64f..80781620c 100644 --- a/doc/source/deployment.rst +++ b/doc/source/deployment.rst @@ -38,6 +38,10 @@ Deployment of the complete system in a single machine/VM. make pythondeps +#. And install the package itself:: + + make install + #. Generate the SSL certificates if you do not already have them. The resulting certificates will have names test.* because they are self-signed and **are not supposed to be used for production**. @@ -57,6 +61,16 @@ Deployment of the complete system in a single machine/VM. and verify that `jupyterhub_config.py` is correct for your deployment machine setup (see :ref:`configuration`). +#. If you are using virtual users (users that are not present on the system) you need to create + a temporary space where the virtual user homes are created:: + + mkdir /tmp/remoteapp + +#. You can now start the service:: + + sh start.sh + + Setup docker containers ----------------------- From a4cdec9fc70813e2054c6e078342850e418fc202 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:43:49 +0100 Subject: [PATCH 07/11] Added the website --- doc/source/deployment.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/source/deployment.rst b/doc/source/deployment.rst index 80781620c..73a3d6c2c 100644 --- a/doc/source/deployment.rst +++ b/doc/source/deployment.rst @@ -70,6 +70,10 @@ Deployment of the complete system in a single machine/VM. sh start.sh +#. Visit the site at:: + + https://127.0.0.1:8000 + Setup docker containers ----------------------- From 9af971893507ba4b1b3a508d80b3db10065c3073 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 16:58:02 +0100 Subject: [PATCH 08/11] Pegged version of docker-py --- requirements.txt | 4 +++- setup.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 2a6193174..b509ad0a5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,9 @@ traitlets>=4.1 tornado>=4.3 # Fix to 2.10.0 due to docker-py needs (fails with 2.11.1) requests==2.10.0 -docker-py>=1.8 +# We want 1.8 because 1.10 uses API version 1.24 and the docker server +# on ubuntu uses 1.23, so they don't like each other. +docker-py==1.8 escapism>=0.0.1 jinja2>=2.8 git+git://github.com/jupyterhub/jupyterhub.git diff --git a/setup.py b/setup.py index bd774fafe..d53ec756b 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ # for our code to import on RTD. requirements.extend(["sqlalchemy>=1.0"]) else: - requirements.extend(["jupyterhub>=0.7.0dev0", "docker-py>=1.8"]) + requirements.extend(["jupyterhub>=0.7.0dev0", "docker-py==1.8"]) # main setup configuration class setup( From 3adb60e390b370db87026b7d3b39b57ec87561d9 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Fri, 16 Sep 2016 17:25:20 +0100 Subject: [PATCH 09/11] Added other images to the standard test collection locally --- Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Makefile b/Makefile index 4c57a8195..0e68119e2 100644 --- a/Makefile +++ b/Makefile @@ -82,6 +82,11 @@ testimages: @echo "-------------------------" docker pull simphonyproject/simphonic-mayavi:latest docker pull simphonyproject/simphonic-paraview:latest + if ! [ $$TRAVIS ]; then \ + docker pull simphonyproject/filetransfer:latest; \ + docker pull simphonyproject/jupyter:latest; \ + fi + .PHONY: test test: pythontest jstest From 587cf75d26f6bfa609aee483b9f1996ccb0aee27 Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Mon, 19 Sep 2016 09:55:57 +0100 Subject: [PATCH 10/11] A bit more information about the docker.sock permission needs --- doc/source/deployment.rst | 3 ++- doc/source/troubleshoot/docker.rst | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/source/deployment.rst b/doc/source/deployment.rst index 73a3d6c2c..3f418dc36 100644 --- a/doc/source/deployment.rst +++ b/doc/source/deployment.rst @@ -20,7 +20,8 @@ Deployment of the complete system in a single machine/VM. make deps #. Make sure your docker server is running, and your user is allowed to connect to - the docker server. You obtain this by:: + the docker server (check accessibility of `/var/run/docker.sock`). You obtain this by + running:: sudo service docker start sudo addgroup your_username docker diff --git a/doc/source/troubleshoot/docker.rst b/doc/source/troubleshoot/docker.rst index ff61793bb..b3d7ca285 100644 --- a/doc/source/troubleshoot/docker.rst +++ b/doc/source/troubleshoot/docker.rst @@ -22,3 +22,4 @@ that your current user is not in the `docker` group. Fix this by running:: sudo addgroup your_username docker +and then logging out and in again. From 891ceca8397425f36db2b4ab1de6140ae6c81e8b Mon Sep 17 00:00:00 2001 From: Stefano Borini Date: Mon, 19 Sep 2016 11:48:49 +0100 Subject: [PATCH 11/11] Swapped check for better future proofing --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 8952b73d1..58519b1c2 100644 --- a/Makefile +++ b/Makefile @@ -15,12 +15,12 @@ deps: false; \ fi -sudo apt-get update - if [ `lsb_release -rs` = "16.04" ]; then \ - packages="docker.io npm nodejs-legacy python3-pip python3-venv"; \ + if [ `lsb_release -rs` = "14.04" ]; then \ + plat_packages="docker-engine python3.4-venv"; \ else \ - packages="docker-engine npm nodejs-legacy python3-pip python3.4-venv"; \ + plat_packages="docker.io python3-venv"; \ fi; \ - sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y $$packages + sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y $$plat_packages npm nodejs-legacy python3-pip .PHONY: pythondeps pythondeps: