Skip to content

Commit

Permalink
chore: merge upstream
Browse files Browse the repository at this point in the history
  • Loading branch information
eroan-marie committed Dec 20, 2024
2 parents a75cf6b + e62e093 commit 630e669
Show file tree
Hide file tree
Showing 63 changed files with 8,206 additions and 3,971 deletions.
2 changes: 0 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
-include .env

# Makefile for convenience, (doesn't look for command outputs)
.PHONY: all
all: base-image base-notebook pangeo-notebook dtf-notebook
Expand Down
50 changes: 22 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# Pangeo Docker Images

[![Documentation build status](https://img.shields.io/readthedocs/pangeo-docker-images?logo=read-the-docs)](https://pangeo-docker-images.readthedocs.org/en/latest/)
![Build Status](https://github.com/pangeo-data/pangeo-docker-images/workflows/Build/badge.svg)
![Publish Status](https://github.com/pangeo-data/pangeo-docker-images/workflows/Publish/badge.svg)
![DockerHub Version](https://img.shields.io/docker/v/pangeo/base-image?sort=date)
[![Documentation build status](https://img.shields.io/readthedocs/datalabs-docker-images?logo=read-the-docs)](https://datalabs-docker-images.readthedocs.io/en/latest/)
![Build Status](https://github.com/cnes/datalabs-docker-images/workflows/Build/badge.svg)
![Publish Status](https://github.com/cnes/datalabs-docker-images/workflows/Publish/badge.svg)
![DockerHub Version](https://img.shields.io/docker/v/cnes/base-image?sort=date)

The images defined in this repository capture reproducible computing environments used by [Pangeo Cloud](https://pangeo.io/cloud.html). They build on top of the Ubuntu operating system and include [conda environments](https://conda.io/projects/conda) with a curated set of Python packages for geospatial analysis. While initially intended for Pangeo Cloud, they can be used outside of Pangeo infrastructure too!

More details can be found in [our documentation](https://pangeo-docker-images.readthedocs.io).
More details can be found in [our documentation](https://datalabs-docker-images.readthedocs.io/en/latest/).

Images are hosted on [DockerHub](https://hub.docker.com/u/pangeo) and on [Quay.io](https://quay.io/organization/pangeo)
Images are hosted on [Dockerhub](https://hub.docker.com/u/cnes)

| Image | Description | Size | Pulls |
|-----------------|-----------------------------------------------|--------------|-------------|
| base-image | Foundational Dockerfile for builds | ![](https://img.shields.io/docker/image-size/pangeo/base-image?sort=date) | ![](https://img.shields.io/docker/pulls/pangeo/base-image?sort=date)
| [base-notebook](base-notebook/packages.txt) | minimally functional image for pangeo hubs | ![](https://img.shields.io/docker/image-size/pangeo/base-notebook?sort=date) | ![](https://img.shields.io/docker/pulls/pangeo/base-notebook?sort=date)
| [pangeo-notebook](pangeo-notebook/packages.txt) | base-notebook + core earth science analysis packages | ![](https://img.shields.io/docker/image-size/pangeo/pangeo-notebook?sort=date) | ![](https://img.shields.io/docker/pulls/pangeo/pangeo-notebook?sort=date)
| [pytorch-notebook](pytorch-notebook/packages.txt) | pangeo-notebook + GPU-enabled pytorch | ![](https://img.shields.io/docker/image-size/pangeo/pytorch-notebook?sort=date) | ![](https://img.shields.io/docker/pulls/pangeo/pytorch-notebook?sort=date)
| [ml-notebook](ml-notebook/packages.txt) | pangeo-notebook + GPU-enabled tensorflow2 | ![](https://img.shields.io/docker/image-size/pangeo/ml-notebook?sort=date) | ![](https://img.shields.io/docker/pulls/pangeo/ml-notebook?sort=date)
| base-image | Foundational Dockerfile for builds | ![](https://img.shields.io/docker/image-size/cnes/base-image?sort=date) | ![](https://img.shields.io/docker/pulls/cnes/base-image?sort=date)
| [base-notebook](base-notebook/packages.txt) | minimally functional image for pangeo hubs | ![](https://img.shields.io/docker/image-size/cnes/base-notebook?sort=date) | ![](https://img.shields.io/docker/pulls/cnes/base-notebook?sort=date)
| [pangeo-notebook](pangeo-notebook/packages.txt) | base-notebook + core earth science analysis packages | ![](https://img.shields.io/docker/image-size/cnes/pangeo-notebook?sort=date) | ![](https://img.shields.io/docker/pulls/cnes/pangeo-notebook?sort=date)
| [pytorch-notebook](pytorch-notebook/packages.txt) | pangeo-notebook + GPU-enabled pytorch | ![](https://img.shields.io/docker/image-size/cnes/pytorch-notebook?sort=date) | ![](https://img.shields.io/docker/pulls/cnes/pytorch-notebook?sort=date)


*Click on the image name in the table above for a current list of installed packages and versions*

Expand All @@ -26,12 +26,10 @@ graph TD;
base-image-->base-notebook;
base-notebook-->pangeo-notebook;
pangeo-notebook-->pytorch-notebook;
pangeo-notebook-->ml-notebook;
click base-image "https://hub.docker.com/r/pangeo/base-image" "Open this in a new tab" _blank
click base-notebook "https://hub.docker.com/r/pangeo/base-notebook" "Open this in a new tab" _blank
click pangeo-notebook "https://hub.docker.com/r/pangeo/pangeo-notebook" "Open this in a new tab" _blank
click pytorch-notebook "https://hub.docker.com/r/pangeo/pytorch-notebook" "Open this in a new tab" _blank
click ml-notebook "https://hub.docker.com/r/pangeo/ml-notebook" "Open this in a new tab" _blank
click base-image "https://hub.docker.com/r/cnes/base-image" "Open this in a new tab" _blank
click base-notebook "https://hub.docker.com/r/cnes/base-notebook" "Open this in a new tab" _blank
click pangeo-notebook "https://hub.docker.com/r/cnes/pangeo-notebook" "Open this in a new tab" _blank
click pytorch-notebook "https://hub.docker.com/r/cnes/pytorch-notebook" "Open this in a new tab" _blank
```

### Using the image with Singularity on HPC systems
Expand All @@ -49,17 +47,13 @@ The primary use of these Docker images is running on Pangeo Cloud deployments wi
| 0.8 | 2020.07.28 |
| 0.7 | 2020.04.22 |

### Additions in the Fork

* Installation processes for more complex applications can be managed using custom scripts, as described in the [Customization guide](docs/howto/custom-image.md).

### Other notes

* Since 2020.10.16, [mamba](https://github.com/mamba-org/mamba) is installed into the base-image and conda-lock environment and is used by default to solve for a compatible environment (see #146)
* For a simple list of packages for a given image, you can use a link like this: https://github.com/pangeo-data/pangeo-docker-images/blob/2020.10.08/pangeo-notebook/packages.txt
* To compare changes between two images, you can use a link like this: https://github.com/pangeo-data/pangeo-docker-images/compare/2020.10.03..2020.10.08
* As of 2024.05.21, the `ml-notebook` and `pytorch-notebook` docker images contain
machine learning libraries built with CUDA 12. In previous versions, we have suggested
`ml-notebook` users to install `cuda-nvcc` manually to obtain JAX and/or TensorFlow
with [XLA](https://openxla.org/xla) optimization, but this workaround should no longer
be needed if you are using `ml-notebook` 2024.06.02 or newer that comes with
`cuda-nvcc` pre-installed.
* There used to be a `pangeo/forge` image, built for use with [pangeo-forge](https://pangeo-forge.org/). It is
no longer actively maintained or used, but you can still use the [historical tags](https://quay.io/repository/pangeo/forge?tab=tags)
if you wish.
* For a simple list of python packages for a given image, you can use a link like this: https://github.com/CNES/datalabs-docker-images/blob/master/pangeo-notebook/packages.txt
* For a simple list of apt packages for a given image, you can use a link like this: https://github.com/CNES/datalabs-docker-images/blob/master/pangeo-notebook/apt.txt
* To compare changes between two images, you can use a link like this: https://github.com/CNES/datalabs-docker-images/compare/2020.10.03..2020.10.08
27 changes: 17 additions & 10 deletions base-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ ONBUILD RUN echo "Checking for 'jupyter_notebook_config.py'..." \
&& cp jupyter_notebook_config.py /etc/jupyter \
; fi

# ONBUILD USER ${NB_USER}
ONBUILD USER ${NB_USER}

# We want to keep our images as reproducible as possible. If a lock
# file with exact versions of all required packages is present, we use
Expand Down Expand Up @@ -186,16 +186,23 @@ ONBUILD RUN echo "Checking for pip 'requirements.txt'..." \

ONBUILD USER root

ONBUILD COPY resources/layer-cleanup.sh /usr/local/bin
ONBUILD RUN chmod +x /usr/local/bin/layer-cleanup.sh
ONBUILD RUN echo "Copy 'layer-cleanup'..." \
; [ -d binder ] && cd binder \
; [ -d .binder ] && cd .binder \
; pwd; ls \
; cp resources/layer-cleanup.sh /usr/local/bin/ \
; chmod +x /usr/local/bin/layer-cleanup.sh

ONBUILD RUN for script in $(find "resources" -type f -name "install.sh"); do \
chmod +x "$script"; \
echo "Executing $script"; \
bash "$script"; \
layer-cleanup.sh; \
chown -R ${NB_USER}:${NB_USER} ${HOME}; \
done
ONBUILD RUN echo "Executing install scripts..." \
; [ -d binder ] && cd binder \
; [ -d .binder ] && cd .binder \
; for script in $(find "resources" -type f -name "install.sh"); do \
chmod +x "$script"; \
echo "Executing $script"; \
bash "$script"; \
layer-cleanup.sh; \
chown -R ${NB_USER}:${NB_USER} ${HOME}; \
done

ONBUILD USER ${NB_USER}

Expand Down
4 changes: 4 additions & 0 deletions base-notebook/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Dockerfile
environment.yml
packages.txt
.dockerignore
Loading

0 comments on commit 630e669

Please sign in to comment.