Commit Graph

78 Commits

Author SHA1 Message Date
Simon Li
a2c39a4dbc Remove multi-arch cross-compilation debugging 2023-05-06 12:33:32 +01:00
Simon Li
83a8552a63 Clean-up FROM --platform leftover from debugging 2023-05-06 12:09:43 +01:00
Simon Li
f60c633320 Replace apt -q with apt-get -qq 2023-05-06 11:58:05 +01:00
Simon Li
a5c7384228 Completely seperate jupyterhub and other wheel stages 2023-05-06 11:44:42 +01:00
Simon Li
27de930978 More debugging 2023-05-06 10:40:07 +01:00
Simon Li
98e76d52bc Debugging BUILDPLATFORM TARGETPLATFORM 2023-05-06 00:51:53 +01:00
Simon Li
729aac9bd1 Why is BUILDPLATFORM linux/arm64 when buliding arm64 on a gh amd64 runner? 2023-05-06 00:38:05 +01:00
Simon Li
bc85c445ab Attempt to reduce container build time
JupyterHub is pure Python, so can be built in a native platform image and copied into the target platform image
2023-05-06 00:03:32 +01:00
Simon Li
4e7147a495 Update nodejs from 12 to 18 2023-05-05 21:04:00 +01:00
Aleksey Karpov
1d29fcbfb2 Update Dockerfile
The same apt command in the entire file.
2023-03-29 14:46:28 +03:00
Aleksey Karpov
bdbfbb7e32 Update Dockerfile
Silently updating the list of available apt packages.
2023-03-29 14:44:00 +03:00
Aleksey Karpov
42314ed75b Apply suggestions from code review
Co-authored-by: Min RK <benjaminrk@gmail.com>
2023-03-29 14:15:20 +03:00
Aleksey Karpov
d8141692ab Update Dockerfile
Co-authored-by: Min RK <benjaminrk@gmail.com>
2023-03-29 14:12:12 +03:00
Aleksey Karpov
025db2f9f3 Update Dockerfile
removed the installation of apt packages from the cache due to the fact that the tests did not pass.
2023-03-24 15:22:01 +03:00
Aleksey Karpov
6886384ca3 Update Dockerfile
Add mount cache
2023-03-24 14:49:11 +03:00
Aleksey Karpov
555969141e Update Dockerfile
Add env PYTHONDONTWRITEBYTECODE=1
2023-03-15 12:16:00 +03:00
Aleksey Karpov
a938982bdc Update Dockerfile
Divided the assembly image into parts
2023-03-15 12:10:28 +03:00
Aleksey Karpov
60a153718d Update Dockerfile
Add python-is-python3 
https://github.com/jupyterhub/jupyterhub/pull/4199
2023-03-15 08:20:46 +03:00
Aleksey Karpov
d72a96ec17 Update Dockerfile
Reduced the number of layers, optimized the assembly, reduced the size of the final image, removed the logs, removed unnecessary commands.
2023-03-14 21:43:48 +03:00
Simon Li
a3b20bb220 Dockerfile: install yarn with npm 2022-09-10 12:24:17 +01:00
Simon Li
b644052cb4 Dockerfile: Use python -m build to match release workflow 2022-09-10 12:12:58 +01:00
Erik Sundell
17bb8a9ba4 Unpin Dockerfile's ubuntu base image 2022-07-25 15:27:50 +02:00
Min RK
0d0368c042 Bump Dockerfile base image to 22.04 2022-07-14 09:03:53 -07:00
Simon Li
36e7898ed4 Update CI so that setup.py can build admin app 2022-05-29 16:52:24 +01:00
Simon Li
7c8f7e9fcb Don't pin Dockerfile parent hash 2021-04-13 15:34:14 +01:00
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