Commit Graph

53 Commits

Author SHA1 Message Date
Min RK
94612d09a6 build wheel with setup.py bdist_wheel
pip wheel from scratch may not include files generated during build
2020-09-07 15:03:13 +02:00
Simon Li
f728cf89c6 Update Dockerfile to ubuntu:focal (Python 3.8) 2020-08-26 22:24:14 +01:00
Jason Anderson
703703a648 Ensure client dependencies build before wheel
Bug #2852 describes an issue where templates cannot be found by
JupyterHub when using the Docker images built out of this repo. The
issue turned out to be due to missing node_modules at the time of build.

There is a hook in the `package.json` that causes node_modules to be
copied to the static/components directory post-install. If this is not
run, those components are not in the static directory and thus are not
included in the wheel when it is built.

Fix #2905 fixed one problem--the `bower-lite` hook script wasn't copied
to the Docker image, and so the hook couldn't run, but the other issue
is that the client dependencies are never explicitly built. They must be
built prior to the wheel build, and the hook script must have run so
they are copied to the ./static folder, which is included in the wheel
build thanks to [MANIFEST.in][1]

.. note::

   This removes the verbose flag from the wheel build command. The
   reason is that it generates a lot of writes to stdout. It seems that
   wheel can (or always) is switching to non-blocking mode, which can cause
   EAGAIN to be raised, which leads to fun errors like:

     BlockingIOError(.., 'write could not complete without blocking', ..)

   The wheels fail to build if this error is raised. Removing the verbosity
   flag is a quick solution (it drastically reduces writes to STDOUT), but
   comes at the cost of more trouble debugging a failed wheel build. Adding
   the "-v" back in the Dockerfile when debugging a build failure is still
   possible. [Credit: @vbraun][2]

.. note::

   This commit also removes some extraneous COPY operations during the
   Docker build, in particular the /src/jupyterhub/share directory is
   not used unless users have explicitly override their
   jupyterhub_config.py to include it somehow. If the default
   data_files_path behavior is used, JupyterHub should find the proper
   static directory when the application loads.

Fixes: #2852

[1]: https://packaging.python.org/guides/using-manifest-in/
[2]:
https://github.com/travis-ci/travis-ci/issues/4704#issuecomment-348435959
2020-06-11 15:15:56 -05:00
Erik Sundell
5deba0c4ba Copy all files to Dockerfile's build stage
Not exactly all though as some will be ignored by the .dockerignore
file. This change ensures we don't get future issues caused by a failure
to update what needs to be copied to the build stage and not like we've
had recently.
2020-01-23 07:20:53 +01:00
Erik Sundell
5234d4c7ae Add bower-lite script to Dockerfile
This fixes #2852 by adding a script part of package.json. But is this
enough? Should we perhaps look in MANIFEST.in and copy some more files
listed there?

This is all thanks to people coming together and helping out figuring
out the issue in https://github.com/jupyterhub/jupyterhub/issues/2852.
Thank you @shingo78 for spotting that we missed bower-lite and its role
and all others who reported and helped debug this!
2020-01-23 07:20:40 +01:00
Richard Darst
a8ced3a7ad Dockerfile: Copy share/ to the final image
- When the Dockerfile was turned into a multi-stage build, it seems
  the share/ directory was not copied to the final image.  This
  resulted in certain components (static/components/, static/css/)
  being missing, which resulted in the JupyterHub share directory not
  being findable (in jupyterhub/_data.py).  This led to all kinds of
  weird havoc, like templates not being findable (#2852).
- I am still unsure if this is the right fix, please check this well.
- Closes: #2852
2019-12-28 13:14:00 +01:00
Richard Darst
1af7deaeb3 Dockerfile: add build-essential to builder image
- While debugging another problem, I noticed some failures to build
  the C extensions in the logs.  Adding build-essential should fix
  that (also as mentioned in the logs themselves).
- Extensions failed for tornado, sqlalchemy, and pyrsistent(pvectorc)
  and can be found by searching the previous output for "fail".
2019-12-28 13:12:11 +01:00
Greg
490cf2dd82 switch from container to base
Signed-off-by: Greg <werner.greg@gmail.com>
2019-12-16 12:59:50 -05:00
Greg
b0343ef8d8 update base version and add build stage alias
Signed-off-by: Greg <werner.greg@gmail.com>
2019-12-16 12:45:53 -05:00
Min RK
f31101432e be consistent about $BASE_IMAGE arg 2019-12-03 15:36:57 +01:00
Min RK
a2c98d016e Greatly simplify Dockerfile
- use apt to get Python, nodejs
- use npm to get configurable-http-proxy
2019-12-03 14:53:12 +01:00
Min RK
1fe01ae173 pin a couple versions in Dockerfile 2019-12-03 14:33:56 +01:00
Greg
b8c9717862 add missing maintainer label
Signed-off-by: Greg <werner.greg@gmail.com>
2019-11-10 11:22:19 -05:00
Greg
06f89cb5ed remove lang layer
Signed-off-by: Greg <werner.greg@gmail.com>
2019-11-10 10:47:45 -05:00
Greg
b5602028e5 more updates
Signed-off-by: Greg <werner.greg@gmail.com>
2019-11-10 10:46:54 -05:00
Greg
b1e45cde1e dockerfile cleanup
Signed-off-by: Greg <werner.greg@gmail.com>
2019-11-10 10:03:48 -05:00
Max Mensing
a64fa15fee Bumped Miniconda to 4.5.11 2018-10-24 09:36:55 +02:00
Carol Willing
6940ed85b1 bump miniconda to 4.5.1 2018-06-06 08:25:28 -07:00
Min RK
1c942ec97c ubuntu base image has utf8 locale 2018-04-26 16:43:56 +02:00
Min RK
f99b7cb7eb update Python, conda, ubuntu in Dockerfile 2018-04-26 16:43:56 +02:00
Min RK
5ffb5763a5 setup.py: run npm with --unsafe-perm
this is the equivalent to bower's `--allow-root` that we had in bower-proper

fixes issues when installing jupyterhub from source with sudo
2017-11-13 11:09:25 +01:00
Min RK
b285de4412 npm install with unsafe-perm on docker
npm doesn't like to run postinstall as root
2017-11-07 13:01:31 +01:00
Min RK
69a27b7843 use pycurl by default, if available
simplehttpclient can have issues with high load
2017-07-11 16:16:02 +02:00
Peter Parente
236802be1f Update Dockerfile
* Use nodejs, CHP from condaforge
* Bump the version of conda used
2016-11-07 18:46:04 -08:00
Min RK
f1a55e31ce Dockerfile: set debian CDN
because the default httpredir fails with some regularity

based on info from http://deb.debian.org
2016-09-26 16:58:31 +02:00
Min RK
35c261d0ed better Dockerfile comments from Carol 2016-04-21 21:32:36 +02:00
Min RK
9fed0334c8 jupyterhub path in dockerfiles 2016-04-20 14:43:25 +02:00
Min RK
8b61eb7347 install from miniconda 4.0.5
- checksum miniconda installer
- move jupyterhub src to /src/jupyterhub
2016-04-19 13:21:25 +02:00
Min RK
9cdda101c7 Move onbuild step to jupyterhub-onbuild
Removes onbuild from from jupyter/jupyterhub image,
though it remains incomplete and will not run without a config file.
2016-04-19 13:21:24 +02:00
Fokko Driesprong
1ae795df18 Changed domain of the label to .org 2016-02-09 14:16:50 +01:00
Fokko Driesprong
2aacd5e28b Added label to dockerfile for referencing 2016-02-08 17:16:20 +01:00
Min RK
6a3d790f49 install locale in Dockerfile
and do a little cleanup of temporary installation files
2016-01-25 12:32:32 +01:00
Min RK
1a4226419f Base Dockerfile on debian:jessie
rather than jupyter/notebook

and use conda to get Python 3.5

No longer includes single-user server dependencies
2016-01-20 14:33:39 +01:00
Min RK
37f736cf45 install nodejs with one command in Dockerfile 2015-11-17 14:54:06 +01:00
Fokko Driesprong
9e738a62d1 Added npm/node which fixes the Dockerfile 2015-11-16 15:55:41 +01:00
Dietmar Winkler
0d6ee3c63c ipython/ipython is deprecated.
The correct one is now jupyter/notebook
2015-07-09 09:53:18 +02:00
Min RK
9af29126ab remove errant npm install from Dockerfile 2015-03-05 11:25:42 -08:00
Min RK
7930d81d0c don't pretend npm install -g works
install configurable-http-proxy

because dependencies aren't installed anywhere on PATH
2015-03-05 10:12:52 -08:00
Min RK
9cbf30dfb9 use npm install in Dockerfile 2015-03-04 16:56:06 -08:00
Min RK
a2c23eed23 install requirements as discrete step in docker file
avoids reinstalling requirements on every change after `ADD .`
2015-01-07 17:12:29 -08:00
Min RK
0562e0491b Jupyter has a mailing list 2014-11-25 11:02:27 -08:00
Min RK
c19ecdd1b2 Don't install requirements in Dockerfile
`pip install .` covers that

The one exception is IPython master,
which is inherited from the base image.
2014-11-08 21:02:46 -08:00
Min RK
e6335482c5 update some file names
default config file is now `jupyterhub_config.py`,
to be consistent with everything else

add config files, runtime files to .gitignore
2014-11-04 11:58:33 -08:00
MinRK
9e75d8248f add sudo example Dockerfile 2014-10-21 20:04:12 -07:00
MinRK
9178e361b9 export port 8000 in dockerfile 2014-09-24 21:10:41 -07:00
MinRK
c5926ff1bc derive Dockerfile from ipython/ipython:master
add ONBUILD ADD jupyter_hub_config.py so derivative images
can configure the hub server.
2014-09-24 20:53:08 -07:00
Kyle Kelley
315accc4b9 Ensure python3 is aliased 2014-09-15 00:34:02 +00:00
Kyle Kelley
2f71b18deb [Docker] Make bower installation separate. 2014-09-14 17:09:20 +00:00
Kyle Kelley
36ba03de74 Switch to Python 3, use python3 entry 2014-09-14 03:54:19 +00:00
Kyle Kelley
183e52dd01 Reorder Dockerfile, include Maintainer 2014-09-13 16:00:25 -05:00