From 10ae409d657a302ca0ef1deba6f7dc1c87d60aed Mon Sep 17 00:00:00 2001 From: bsatoriu <27687558+bsatoriu@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:38:18 -0700 Subject: [PATCH] Develop into main (#122) * Feature/update maap help tour (#61) updated maap help jupyter extension to version 1.0.0 * Bugs/presigned url (#62) Main fix for the presigned url bug was changing 'maapsec/environment' to 'jupyter-server-extension/getConfig' There was another bug caused by a race condition that was causing users to not be able to get the presigned url about every 10th time. What fixed this bug is calling updateKeycloakToken upon the launch of the extension and also trying to call updateKeycloakToken again if getting the keycloak user information fails to get I confirmed this bug was fixed by trying to get the presigned url 25 times and it worked Successful build in vanilla here: https://repo.dit.maap-project.org/root/maap-workspaces/-/pipelines/3389 * Added memory extension (#59) added changes from cluttered commit branch * hysds base-image [skip ci] (#65) * Feature/libmamba solver (#64) * upgraded maap help jupyter extension version to 1.0.0 * reverted back changes * changed r docker to use libmamba solver * changed mamba install to conda * converted all images use libmamba solver like R image * added lang tz and debian frontend commands to vanilla docker image * copied pangeo dockerfile into vanilla * first line of packages back to vanilla versions * updated package versions for vanilla to be same as pangeo * updated isce2 package versions to match vanilla * updating continuumio/miniconda3 for rgedi and making other 3 top lines consistent * removed changes from rgedi * Update stac_ipyleaflet to 0.3.5 for Pangeo (#66) * Updated pinned version of stac_ipyleaflet to 0.3.5 for pangeo jupyter workspace. * Added environment variables to Pangeo environment yml. * Updated entrypoint bash script so the the base environment is activated before launching jupyter so that environment variables are accessible within jupyter. --------- Co-authored-by: Alex * Remove hysds base_image [skip-ci] (#68) * Bugs/quick fix libmamba (#69) * removed libmamba sovler from conda env update * added solver to environment.yml * added conda libmamba solver version * added back in solvers and pinned version for conda-libmamba-solver * added back in space * Bugs/presigned url (#70) * changed dit url to test * changed dit back and changed ops to be maap-ops-workspace instead of dataset * Bugs/git tour link (#71) * manual build for change to maap help * updated npm version of maap help * updated custom ext versions (#72) * Feature/update maap py (#73) upgraded all maap py versions to 3.1.2 * bumped jupyter server extension (#74) * update server ext * bumped server ext * Bump maap-py to v3.1.3 (#75) * Update Dockerfile * Bugs/libmamba default (#77) * added conda config setting libmamba solver to entrypoint.sh * updated maap help to version 1.0.1 * converted back to 1.0.0 * trying to create .condarc file * removed touch because might work without it * upgraded conda libmamba solver * undid change because forgot I had PR open for this branch * added --system tag and removed conda config from entrypoint * added the system tag to all base image dockerfiles * Update entrypoint.sh (#78) * Bugs/double submit null username (#79) * updated maap help to version 1.0.1 * converted back to 1.0.0 * upgraded dps version to add feature disabling submit button/ saying last submitted info and fixing the null username bug * Features/update workspace dependencies (#80) * Updated how conda packages installs are handled at the base image layer for Pangeo to use an environment.yml file like we do for its respective jupyterlab image. * Updated to miniconda 23.5.2-0 for the pangeo base image. * Updated list of packages for the base and jupyter images for the Pangeo Workspace. * updated maap help to version 1.0.1 * converted back to 1.0.0 * Clean up of pangeo base environment.yml * Reverted the miniconda version of base pangeo image to 22.11.1. * Updated jupyterlab3 pangeo docker conda solver parameter * Modified base pangeo image conda env update solver parameter spec * explicility installing libarchive fron conda-forge to test resolution of issue with libmamba. * Testing base pangeo conda install parameter updates. * Test builds using new version of miniconda. * Test another build configuration on gitlab using new pinned version of conda-libmamba-solver * Bumped miniconda version to 23.10.0-1 and removed conda-libmamba-solver since libmamba is the default solver in this new version of miniconda. * Updated Pangeo base image and environment yml so that packages are installed in a new environment named with the workspace type to resolve issues with libarchive/libmamba and the installation of packages. * Updated Pangeo jupyterlab dockerfile and environment yml to use new custom environment instead of base environment. * Moved a couple jupyter python packages from dockerfile to the environment yml. * Updated entrypoint to test new environment variable that stores the type of workspace being run to ensure jupyter can be launched appropriately. * Patch issue with ARG values not carrying over to downstream build stages in docker file. Also replaced use of BUILD_IMAGE_TYPE with ENV var, "WORKSPACE_TYPE". * Pinned jupyterlab package to 3.6.1 to fix build issue with jupyterlab_plotly. * Pinned additional packages to assist with resolving jupyterlab build issues. * Commented line "conda init" in entrypoint.sh. * Reverted commenting out "conda init" in entrypoint that was previously done for testing. * Testing changes "~/.bash_profile" to properly set the default conda environment for terminals. * Updated path variable to point to our custom conda environment bin instead of the conda base env bin path. * Updated how the default environment is activated for terminals. * removed jupyter-server from envirionment yml as the jupyterlab installation takes care of installing the jupyter_server package already. * Added Makefile which contains commonly run recipes when modifying workspaces locally and needing to test building them. * Updated notebook lib path and jupyter server lib path to point to the appropriate custom conda environment. * current attempt at fixing r workspace issues, building for base image but not for jupyterlab3 * r image building successfully locally * added conda lists * Added perl package to r base environment.yml to resolve issue with r-tinytex not installing. * Added string replacement commands to remove conda env related commands from .bash_profile that are no longer needed. * Updated jupyterlab3's dockerfile so that it modifies the "jupyterlab3/shared/environment.yml" by doing a string replacement on the workspace environment name for workspaces that don't have a custom environment.yml. * r image building locally * pinned versions * updated pinned versions * changed version for r-dplyr * new botocore version * added aiobotocore dependency * removed aiobotocore from install * removed botocore install * added half of the packages to see if I can get rid of the botocore warning * removed some more environment.yml packages because still getting botocore error * removed even more packages because still getting botocore warnining * removed more packages because still getting botocore warning * Added conda list to dockerfiles for testing on ADE. * added maap py into pip install from source * updated git install from source * added v to version tag for maappy * added a bunch of conda lists trying to debug * installing maap py to root * corrected installing into root bug * added run pwd line to try to debug * tried setting the working directory to root before git clone * tried adding another pwd command * removed . from git clone * set working directory to maap py * added back in . for git clone * Updated packages for base and jupyterlab reported by data team that are needed in Python based workspaces. * Updated the folder parameter for where maap-py is installed to hopefully resolve maap-py installation issues. * Moved maap py conf environment variable to base environment yml. * commented out some of the code trying to test maap py again * commented back in code before adding in Anils code that worked * cleaning up jupyterlab3 dockerfile so is consistent * removed extra ; * removed pip install of maap py * updated botocore version in base environment.yml * added binary library files to r install * Removed commented ENV command in pangeo dockerfile. * Updated miniconda version for base vanilla image. * Updated base vanilla image to use an environment yml to store it's configuration environment. Vanilla base image now relies on a custom vanilla conda environment. * Updated jupyterlab shared environment yml so that 1) missing packages needed by data team are included, 2) each workspace uses a custom conda environment, and 3) updated entrypoint so that .bash_profile is cleaned up. * added r-car * pinned r-car version and removed botocore3 * added maap py to environment.yml to avoid botocore dependency errors * Added help documentation to Makefile along with other minor improvements. * commented out git clone for r image * Pinned pangeo packages and removed duplicates. * Pinned packages for vanilla and shared workspace environment ymls. Added missing jupyter package to shared environment yml. * Bumped stac_ipyleaflet to version 0.3.6 for pangeo workspace. * created isce3 environment.yml and pinned r binary library versions * fixed name of fsspec * added isce3 to the jupyterlab3 dockerfile * removed dependencies from isce3 environment.yml * added back in dependencies and removed environment.yml for isce3 in jupyter image * removed packages specific to isce3 * added in 3 packages but isce3 to see if that is the problem * added back in isce3 * removed all vanilla packages and just trying to install base isce3 packages * pinned python version * attempting to install r packages via script * pinned versions for fsspec, hvplot, isce3, xarray * added and modified r scripts and removed awscli trying to fix maappy dependency error * trying to add awscli after maappy install * capitalized Fgmutils * added packages to environment.yml * changed maappy branch to bugs/dependency issues * upgraded awscli version * unpinned versions for vanilla environment.yml * removed all r packages except python and r * unpinned python version * changed back to v3.1.3 tag for maap-py * downgraded awscli to 2.14.1 * upgraded awscali to 2.14.2 * removed pinnection vertsions for cryptography and prompt-toolkit * r image should be building now, doesnt include Fgmutils * unpinned versions to fix maap-py bug in vanilla workspace * pinned vanilla versions and changed to dependecies branch for pangeo and isce3 * changed branch for maappy to version with ipython pinned * pinned botocore version and added conda list * moved conda list command and just pushed maappy pinning boto3=1.33.13 * removed botocore from r/environment.yml * changed to correctly use repos and removed print statements * fixed but for Fgmutils install * pinned package versions that were dependency of Fgmutils * added r channel to r environment.yml * downgraded version of r-devemf * downgraded r and r-base to 4.2.3 to be compatible with r-devemf * changed to r version 4.2 * downgraded r essentials to 4.2 * Added geocube to vanilla base image which was added to pangeo but accidentally omitted from vanilla. * Added additional packages requested by user group for python based workspaces. * Removed pins for vanilla and pangeo base image to test new image builds on GitLab with additional packages. * Updated pinned versions for vanilla base image as well as shared environment yml for jupyterlab. Also bumped jupyterlab to 3.6.3 and added missing package, rio-tiler. * Added pinned version information for pangeo base and jupyterlab images. Also modified version information for jupyterlab to 3.6.3 to resolve version descrepancy with pangeo-notebook package. * Removed pin to test installation of the morecantile package. * Fixed typo of morecantile package in pangeo base image. * Repinned morecantile package for pangeo and vanilla base images. * removed print statements and conda lists * added conda config lines just for testing * added descriptions necessary to use install2.r with GPL license * removed lines making conda forge default because that should be a different PR * updated all maap-py branches to be new 3.1.4 release --------- Co-authored-by: Anil Natha * Feature/conda forge default (#81) * updated maap help to version 1.0.1 * converted back to 1.0.0 * added in lines that set conda forge as the default and create .condarc * fixed typo * Feature/missing r package (#83) * updated maap help to version 1.0.1 * converted back to 1.0.0 * added in lines that set conda forge as the default and create .condarc * added r-BiocManager=1.30.22 package * removed sfarrow just for testing * added back in sfarrow package * added arrow package to environment.yml * added r-arrow dependency * removed arrow package and pinned r-arrow * fixed pinned r-arrow version to 14.0.1 * updated version of libpq-dev to avoid build error * Add `stac_ipyleaflet` (#84) * Added stac-ipyleaflet to shared environment yaml. * Minor commenting and visual improvements to Makefile * Feature/triaged job folder (#88) * updated maap help to version 1.0.1 * converted back to 1.0.0 * added in lines that set conda forge as the default and create .condarc * updated all devfiles to have triaged_job folder * changed instances of triaged_job to triaged-jobs * Fix s3fs sidecar image urls (#89) fix s3fs sidecar image Co-authored-by: bsatoriu * Bug/update dps version (#90) * updated maap help to version 1.0.1 * converted back to 1.0.0 * added in lines that set conda forge as the default and create .condarc * increased dps version to 0.5.9 * Bug/jlab launch error (#94) * manual install for jupyter server extension * changed to npm package of jupyter server extension I published * test pypi install of maap jupyter server extension with jupyter_server version pinned * upgraded version of test pypi package maap jupyter server extension * increased version maap jupyter server extension test pypi after rebuilding the entire extension before publishing * upgraded to 1.2.3 of maap jupyter server extension pypi version * removed comment * Add additional packages to Pangeo (#93) Added additional, pinned packages to pangeo base and jupyter lab images. * Awscli bug (#95) * added the groff package to vanilla * added groff to all images * pinned version for groff * Feature/move rio tiler (#86) * updated maap help to version 1.0.1 * converted back to 1.0.0 * added in lines that set conda forge as the default and create .condarc * added rio tiler to the base image instead of jupyterlab3 image * removed rio tiler from all jupyterlab3 environment.yml and added to base images * Removed ability to build and launch ISCE2 and RGEDI images/workspaces. (#96) Removed ability to build ISCE2 and RGEDI images. * Feature/update maap help (#97) added maap help jupyter extension install to pip and v1.2.2=1 * Feature/update s3fs (#98) updated s3fs to 2023.12.2 * Bug/resolve merge conflicts (#101) * fixed merge conflicts * finished fixing merge conflicts * merge conflicts makefile * upgrade maap-py to v3.1.5 (#102) * Update devfile metadata (#103) * Bug/missing maap cfg (#104) * changed maap-py to be using branch commenting out check for maap.cfg * switched back to v3.1.5 and removed MAAP_CONF * removed conda lists * Bug/maap py dependency errors (#106) * changed maap-py to be using branch commenting out check for maap.cfg * switched back to v3.1.5 and removed MAAP_CONF * added dependencies from installing maap-py first * merged in Brians errors and testing vanilla by pinning boto3 in maap-py and making awscli=2.15.0 * only pinning minor version for awscli vanilla * testing fix that solved vanilla aiobotocore error * try upgrading awscli to 2.14.6 * upgraded awscli for isce3 to 2.14.6 * isce3 awscli to 2.14.5 * awscli 2.14.6 and unpinned most other package versions * pinned back all vanilla versions but awscli 2.14.2 * changed all maap-py branches to bug/unpinned-versions and boto3 versions to 1.34.41 * added maap-py var back into isce3 and cleaned up some conda lists * added boto3 to r image * added in jupyter server extension so correctly testing pinning xmltodict * installing jupyter server extension 1.3.4 * removed extra conda lists and changed to maap-py version v3.1.5 * Bug/add maap py var (#107) added back in maap-py variable * rio-tiler==6.2.8 * Feature/extract jupyter extension installs (#110) * extracted all jupyter extensions except for jupyter server extension * extracted jupyter server extension install * commented out enabling jupyter server extension * commented back in enable for maap_jupyter_server_extension and added installs to pangeo environment.yml * changed maap_jupyter_server_extension to jupyter_server_extension * Bug/remove conda run (#112) * switched to conda init and installing conda/pip directly into vanilla * adding comments about where to remove from in jupyterlab3/dockerfile * changed maap-py install and added back in package vanilla environment.yml * extracted all jupyter extensions except for jupyter server extension * extracted jupyter server extension install * commented out enabling jupyter server extension * commented back in enable for maap_jupyter_server_extension and added installs to pangeo environment.yml * changed enabling maap_jupyter_server_extension back to jupyter_server_extension * added conda install of nodejs so can use npm * added installing jupyterlab to the dockerfile so we can run jupyter labextension install commands * changed to location of jupyter for jupyter install commands * removed install of nodejs and jupyterlab and added path to npm for install * added which npm because getting error installing with that node version * moved npm install command * attempting to set the path for npm to install * setting the path variable and converting the path to jupyter back to jupyter * changed jupyterlab-plotly to npm install * removed exporting the path in entrypoint.sh to see if it still works * added npm and jupyter commands into source activate command * trying to just hardcode in vanilla * changed to a single source activate line in both dockerfiles * added shell bin/bash command * added /bin/bash -c command in front of source activate * adding bin/bash to more commands * SHELL for source activate lines and conda init in base image dockerfile * deleted comments * updated all images to conda init and install maap-py correctly * source activating for maap-py installs * removed SHELL bin/bash from jupyterlab3/dockerfile and added r script into r source activate * added comment for commenting out SHELL * updated conda list commands to activate the environment first * added conda list to above command in jupyterlab3 but keeping base images separate because extracting maap-py soon * Feature/jlab4 upgrade (#113) * jlab upgrade to v4.1.6 * updated other jupyter packages * test * test * test * test * test * test * test * added jupyter-server * added jupyter-server * test * test * test * test * test * comment about not upgrading notebook * added plotly to the environment.yml * ext updates * removed plotly from the pip install for environment.yml * updated maap jupyter server ext * added xmltodict * version updates * updated shared env yaml * version updates * removed version * version update * test * test * test * test * lock packages * update paths * extracted extensions and disabling announcements again * added xmltodict to R and bumped jupyterlab to 4 for pangeo and pinned versions shared environment * added back in jupyter lab build/clean commands * added back in the npm install jupyterlab plotly line * unpinned versions to resolve dependency conflicts * removed rise package * pinned pangeo versions --------- Co-authored-by: grallewellyn * Feature/extract plotly (#115) removed npm install jupyterlab-plotly and jlpm cache clean * Feature/update packages (#114) * successful build for updating vanilla packages * upgraded all base image packages from conda update --all * unpinned problematic versions * updated jupyterlab3 environment.ymls * changed plotly install from jupyterlab extension to npm * nodejs upgrade to 20.1.0 * commented out rise package for pangeo * attempting to debug problems with pangeo and r images * added unpinned vanilla packages to the R base image * added in upgrade changes to jupyterlab4 and unpinned R versions * added back in rise and nb_conda * pinned r and pangeo packages * downgraded numba one more version * downgraded plotly and numba * downgraded plotly * downgraded nodejs and pinned version of jupyter server extension * upgraded nodejs to 20.1.0 because error building * converting back recent changes because vanilla started failing * removed jupyterlab-plotly install line and added xmltodict install * added other changes back and added npm install jupyterlab-plotly line back in * changed jupyter server extension to the version with bug fix and removed extensions from environment.ymls * put pip installs for extensions into source activate line * added lonboard package * added jupyter_server package to pangeo * moved the conda install anywidget command * added channel for anywidget install * removed adding anywidget to base * testing which line is failing when removing jupyterlab-plotly install * added lonboard to all images * removed installing pip and upgraded version plotly and commented xmltodict install * added back in pip to jupyterlab/environment.yml * removed comments * removed jupyter-packaging and comments * Add devfile docker path env vars (#117) Co-authored-by: bsatoriu * Feature/rename workspaces (#116) * Updated all references of "vanilla" to be "python". * Replaced jupyter logo with python logo for python workspace. * Updated dev file references that are using the term "vanilla" to instead use "python". * Updated workspace devfiles. * Removed extra space in python devfile image reference. --------- Co-authored-by: grallewellyn * Feature/add unzip (#118) * added unzip package to all base images * added version for unzip * Create devfile_compile.py (#121) * Create devfile_compile.py * use abs directory for compile file * Add missing links property to all devfiles --------- Co-authored-by: bsatoriu * Feature/no maap cfg (#120) * changed to community-909 branch of maap-py and removed MAAP_CONF and added exporting MAAP_API_HOST * Install maap-py from git using pip * Re-add SHELL command * added MAAP_API_HOST env variable to the devfiles * added sujens suggested changes to MAAP_API_HOST * merged in develop and added v4.0.0 tag to maap-py install --------- Co-authored-by: Sujen Shah Co-authored-by: Sujen Shah --------- Co-authored-by: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Co-authored-by: Anil Natha Co-authored-by: Alex Co-authored-by: Marjorie Lucas <47004511+marjo-luc@users.noreply.github.com> Co-authored-by: Sujen Shah Co-authored-by: Anil Natha Co-authored-by: bsatoriu Co-authored-by: grallewellyn Co-authored-by: Sujen Shah --- Makefile | 18 +-- base_images/build-image.sh | 2 +- base_images/isce3/docker/Dockerfile | 13 +- base_images/isce3/environment.yml | 63 +++++---- base_images/pangeo/docker/Dockerfile | 14 +- base_images/pangeo/environment.yml | 133 +++++++++--------- base_images/python/docker/Dockerfile | 23 +++ base_images/python/environment.yml | 55 ++++++++ base_images/r/docker/Dockerfile | 17 +-- base_images/r/environment.yml | 122 ++++++++++------ base_images/vanilla/docker/Dockerfile | 29 ---- base_images/vanilla/environment.yml | 1 + devfiles/devfile_compile.py | 33 +++++ devfiles/edav/devfile/meta.yaml | 6 +- devfiles/index_example.json | 16 +-- devfiles/isce3/devfile/devfile.yaml | 7 +- devfiles/isce3/devfile/meta.yaml | 6 +- devfiles/pangeo/devfile/devfile.yaml | 7 +- devfiles/pangeo/devfile/meta.yaml | 4 +- .../{vanilla => python}/devfile/devfile.yaml | 9 +- devfiles/python/devfile/meta.yaml | 8 ++ .../python/devfile/python-logo-generic.svg | 63 +++++++++ devfiles/r/devfile/devfile.yaml | 7 +- devfiles/r/devfile/meta.yaml | 6 +- devfiles/vanilla/devfile/jupyter.png | Bin 13846 -> 0 bytes devfiles/vanilla/devfile/meta.yaml | 6 - gitlab-ci/stage.yml.tmpl | 2 +- {jupyterlab3 => jupyterlab}/build-image.sh | 4 +- {jupyterlab3 => jupyterlab}/docker/Dockerfile | 52 ++----- {jupyterlab3 => jupyterlab}/entrypoint.sh | 2 +- {jupyterlab3 => jupyterlab}/environments.json | 0 {jupyterlab3 => jupyterlab}/jupyter_patch | 0 jupyterlab/pangeo/environment.yml | 53 +++++++ jupyterlab/shared/environment.yml | 34 +++++ jupyterlab3/pangeo/environment.yml | 44 ------ jupyterlab3/shared/environment.yml | 25 ---- 36 files changed, 540 insertions(+), 344 deletions(-) create mode 100644 base_images/python/docker/Dockerfile create mode 100644 base_images/python/environment.yml delete mode 100644 base_images/vanilla/docker/Dockerfile create mode 100644 devfiles/devfile_compile.py rename devfiles/{vanilla => python}/devfile/devfile.yaml (91%) create mode 100644 devfiles/python/devfile/meta.yaml create mode 100644 devfiles/python/devfile/python-logo-generic.svg delete mode 100644 devfiles/vanilla/devfile/jupyter.png delete mode 100644 devfiles/vanilla/devfile/meta.yaml rename {jupyterlab3 => jupyterlab}/build-image.sh (79%) rename {jupyterlab3 => jupyterlab}/docker/Dockerfile (64%) rename {jupyterlab3 => jupyterlab}/entrypoint.sh (99%) rename {jupyterlab3 => jupyterlab}/environments.json (100%) rename {jupyterlab3 => jupyterlab}/jupyter_patch (100%) create mode 100644 jupyterlab/pangeo/environment.yml create mode 100644 jupyterlab/shared/environment.yml delete mode 100644 jupyterlab3/pangeo/environment.yml delete mode 100644 jupyterlab3/shared/environment.yml diff --git a/Makefile b/Makefile index 2d871236..91aeda48 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -export IMAGE_NAME ?= vanilla +export IMAGE_NAME ?= python export PROJECT_PREFIX = maap_ export BASE_IMAGE_NAME = "${PROJECT_PREFIX}base_${IMAGE_NAME}" export JUPYTER_IMAGE_NAME = "${PROJECT_PREFIX}jupyter_${IMAGE_NAME}" @@ -8,7 +8,7 @@ build-images: build-base-image build-jupyter-image ## Build both the base and j build-images-no-cache: build-base-image-no-cache build-jupyter-image-no-cache ## Build both the base and jupyterlab image without using the docker cache -build-base-image: ## Build the base image for the 'vanilla' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= +build-base-image: ## Build the base image for the 'python' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= @cd base_images/${IMAGE_NAME}; \ pwd; \ docker buildx build --platform linux/amd64 --progress=plain $(RUN_OPTIONS) -t ${BASE_IMAGE_NAME} -f docker/Dockerfile . @@ -16,26 +16,26 @@ build-base-image: ## Build the base image for the 'vanilla' workspace (default) build-base-image-no-cache: RUN_OPTIONS = "--no-cache" build-base-image-no-cache: build-base-image -build-jupyter-image: ## Build the jupyter image for the 'vanilla' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= - @cd jupyterlab3; \ +build-jupyter-image: ## Build the jupyter image for the 'python' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= + @cd jupyterlab; \ pwd; \ docker buildx build --platform linux/amd64 --progress=plain $(RUN_OPTIONS) -t ${JUPYTER_IMAGE_NAME} --build-arg BASE_IMAGE_TYPE=${IMAGE_NAME} --build-arg BASE_IMAGE=${BASE_IMAGE_NAME} -f docker/Dockerfile . build-jupyter-image-no-cache: RUN_OPTIONS = "--no-cache" build-jupyter-image-no-cache: build-jupyter-image -delete-image: delete-base-image delete-jupyter-image ## Delete the base and jupyter image for the 'vanilla' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= +delete-image: delete-base-image delete-jupyter-image ## Delete the base and jupyter image for the 'python' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= -delete-base-image: ## Delete the base image for the 'vanilla' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= +delete-base-image: ## Delete the base image for the 'python' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= docker image rm ${BASE_IMAGE_NAME} -delete-jupyter-image: ## Delete the jupyter image for the 'vanilla' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= +delete-jupyter-image: ## Delete the jupyter image for the 'python' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= docker image rm ${JUPYTER_IMAGE_NAME} -open-jupyter: ## Open a browser window to access an already running instance of a 'vanilla' jupyter image, or the workspace specified by setting the argument, IMAGE_NAME= +open-jupyter: ## Open a browser window to access an already running instance of a 'python' jupyter image, or the workspace specified by setting the argument, IMAGE_NAME= open http://localhost:3100/ -start-jupyter: ## Start the jupyter image for the 'vanilla' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= +start-jupyter: ## Start the jupyter image for the 'python' workspace (default), or the workspace specified by setting the argument, IMAGE_NAME= docker run -p 3100:3100 ${JUPYTER_IMAGE_NAME} # ---------------------------------------------------------------------------- diff --git a/base_images/build-image.sh b/base_images/build-image.sh index c0c2aa5b..94c01a80 100755 --- a/base_images/build-image.sh +++ b/base_images/build-image.sh @@ -4,7 +4,7 @@ set -ex base_image_dir=$(dirname $0) # Check if on a branch or in a detached HEAD state get commit sha BRANCH=$(basename $(git symbolic-ref -q --short HEAD || git rev-parse --short HEAD)) -DIRS="vanilla isce3 pangeo r" +DIRS="python isce3 pangeo r" if [[ ! -z "$@" ]]; then DIRS=$@ fi diff --git a/base_images/isce3/docker/Dockerfile b/base_images/isce3/docker/Dockerfile index a275edd6..77b261c4 100644 --- a/base_images/isce3/docker/Dockerfile +++ b/base_images/isce3/docker/Dockerfile @@ -16,16 +16,11 @@ RUN conda env create -y -f "/tmp/environment.yml" \ && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ && /opt/conda/bin/conda clean -afy -# Set the conda environment for all subsequent docker RUN commands -# When maap-py is updated and installed via our environment.yml, -# we won't need this line unless other envrionment specific commands are added -SHELL ["conda", "run", "-n", "isce3", "/bin/bash", "-c"] +RUN conda init && echo "conda activate isce3" >> ~/.bashrc -RUN mkdir /maap-py \ - && git clone --single-branch --branch v3.1.5 https://github.com/MAAP-Project/maap-py.git /maap-py/ \ - && pip install -e /maap-py/ - -RUN conda list +SHELL ["/bin/bash", "-c"] +RUN source activate isce3 && \ + conda list ARG IMAGE_REF ENV DOCKERIMAGE_PATH=${IMAGE_REF} diff --git a/base_images/isce3/environment.yml b/base_images/isce3/environment.yml index f33f767f..4a6e5d3c 100644 --- a/base_images/isce3/environment.yml +++ b/base_images/isce3/environment.yml @@ -3,52 +3,53 @@ channels: - conda-forge - nodefaults dependencies: - - awscli=2.14.1 + - anywidget=0.9.12 + - awscli=2.14.1 - backoff=2.2.1 - - boto3=1.34.41 - - cython=3.0.7 - - earthengine-api=0.1.384 - - fsspec=2023.12.2 + - boto3=1.34.106 + - cython=3.0.10 + - earthengine-api=0.1.403 + - fsspec=2024.5.0 - gdal=3.7.0 - - geopandas=0.14.1 + - geopandas=0.14.4 - groff=1.22.4 - h5py=3.9.0 - hdf5=1.14.1 - - httpx=0.25.2 - - hvplot=0.9.0 + - httpx=0.27.0 + - hvplot=0.10.0 - isce3=0.14.0 + - lonboard=0.9.3 - mapclassify=2.6.1 - - matplotlib=3.8.2 + - matplotlib=3.8.4 - mpl-scatter-density=0.7 - - numba=0.58.1 - - numpy=1.26.2 - - pandas=2.1.4 + - numba=0.59.1 + - numpy=1.26.4 + - pandas=2.2.2 - pycurl=7.45.1 - pygeos=0.14 - pyogrio=0.6.0 - pyproj=3.6.1 - - pystac-client=0.7.5 + - pystac-client=0.7.5 - python=3.10.13 - rasterio=1.3.8 - rasterstats=0.19.0 - - requests=2.31.0 - - rio-cogeo=5.1.0 - - rtree=1.1.0 - - s3fs=2023.12.2 - - scikit-learn=1.3.2 - - scipy=1.11.4 - - seaborn=0.13.0 + - requests=2.32.1 + - rio-cogeo=5.3.0 + - rtree=1.2.0 + - s3fs=2024.5.0 + - scikit-learn=1.4.2 + - scipy=1.13.0 + - seaborn=0.13.2 - shapely=2.0.1 - - sliderule=4.1.0 - - statsmodels=0.14.1 - - tqdm=4.66.1 - - unidecode=1.3.7 + - sliderule=4.4.0 + - statsmodels=0.14.2 + - tqdm=4.66.4 + - unidecode=1.3.8 + - unzip=6.0 - xmltodict=0.13.0 - - xarray=2023.12.0 - - pip=23.3.2 + - xarray=2024.5.0 + - pip=24.0 - pip: - - git+https://github.com/opera-adt/RTC.git@v0.3 - - rio-tiler==6.2.8 -variables: - MAAP_CONF: '/maap-py/' - + - git+https://github.com/opera-adt/RTC.git@v1.0.2 + - rio-tiler==6.6.1 + - git+https://github.com/MAAP-Project/maap-py.git@v4.0.0 \ No newline at end of file diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index fcf6faeb..eb3894c9 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -13,17 +13,11 @@ RUN conda env create -y -f "/tmp/environment.yml" \ && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ && /opt/conda/bin/conda clean -afy -# Set the conda environment for all subsequent docker RUN commands -# When maap-py is updated and installed via our environment.yml, -# we won't need this line unless other envrionment specific commands are added -SHELL ["conda", "run", "-n", "pangeo", "/bin/bash", "-c"] +RUN conda init && echo "conda activate pangeo" >> ~/.bashrc -# Install maap-py library -RUN mkdir /maap-py \ - && git clone --single-branch --branch v3.1.5 https://github.com/MAAP-Project/maap-py.git /maap-py/ \ - && pip install -e /maap-py/ - -RUN conda list +SHELL ["/bin/bash", "-c"] +RUN source activate pangeo && \ + conda list ARG IMAGE_REF ENV DOCKERIMAGE_PATH=${IMAGE_REF} \ No newline at end of file diff --git a/base_images/pangeo/environment.yml b/base_images/pangeo/environment.yml index dbf410f5..806861a2 100644 --- a/base_images/pangeo/environment.yml +++ b/base_images/pangeo/environment.yml @@ -3,66 +3,68 @@ channels: - conda-forge - nodefaults dependencies: - - awscli=2.14.1 + - anywidget=0.9.12 + - awscli=2.14.1 - backoff=2.2.1 - basemap=1.3.7 - - bokeh=3.3.3 - - boto3=1.34.41 - - bottleneck=1.3.7 - - cartopy=0.22.0 - - cdsapi=0.6.1 + - bokeh=3.4.1 + - boto3=1.34.106 + - bottleneck=1.3.8 + - cartopy=0.23.0 + - cdsapi=0.7.0 - cf_xarray=0.9.0 - - cfgrib=0.9.10.4 - - cython=3.0.7 - - dask-ml=2023.3.24 - - datashader=0.16.0 + - cfgrib=0.9.11.0 + - cython=3.0.10 + - dask-ml=2024.3.20 + - datashader=0.16.1 - descartes=1.1.0 - - earthaccess=0.8.2 - - earthengine-api=0.1.384 - - eofs=1.4.0 + - earthaccess=0.9.0 + - earthengine-api=0.1.403 + - eofs=1.4.1 - erddapy=2.2.0 - esmpy=8.4.2 - fastjmd95=0.2.1 - - flox=0.8.6 - - fsspec=2023.12.2 + - flox=0.9.7 + - fsspec=2024.5.0 - gcm_filters=0.3.0 - gdal=3.7.0 - - geocube=0.4.2 + - geocube=0.5.2 - geogif=0.1.5 - - geopandas=0.14.2 + - geopandas=0.14.4 - geopy=2.4.1 - - geoviews-core=1.11.0 + - geoviews-core=1.12.0 - groff=1.22.4 - h5netcdf=1.3.0 - h5py=3.9.0 - hdf5=1.14.0 - - holoviews=1.18.1 - - httpx=0.26.0 - - hvplot=0.9.1 - - intake-esm=2024.2.6 + - holoviews=1.18.3 + - httpx=0.27.0 + - hvplot=0.10.0 + - intake-esm=2023.11.10 - intake-geopandas=0.4.0 - intake-stac=0.4.0 - intake-xarray=0.7.0 - - intake=0.7.0 - - kerchunk=0.2.2 + - intake=2.0.5 + - kerchunk=0.2.5 - line_profiler=4.1.1 + - lonboard=0.9.3 - lxml=4.9.3 - - lz4=4.3.2 + - lz4=4.3.3 - mapclassify=2.6.1 - matplotlib=3.7.3 - memory_profiler=0.61.0 - - metpy=1.6.1 - - mizani=0.10.0 + - metpy=1.6.2 + - mizani=0.11.3 - mpl-scatter-density=0.7 - nc-time-axis=1.4.1 - netcdf4=1.6.4 - - numba=0.58.1 - - numbagg=0.8.0 - - numcodecs=0.11.0 - - numpy=1.26.3 - - odc-stac=0.3.8 + - numba=0.58.1 + - numbagg=0.8.1 + - numcodecs=0.12.1 + - numpy=1.26.4 + - odc-stac=0.3.9 - pandarallel=1.6.5 - - pandas=2.1.4 + - pandas=2.2.2 - pyarrow=14.0.1 - pycamhd=0.7.0 - pycurl=7.45.1 @@ -70,41 +72,42 @@ dependencies: - pygeos=0.14 - pyogrio=0.6.0 - pyproj=3.5.0 - - pystac-client=0.6.1 - - pystac=1.9.0 - - python-blosc=1.10.6 + - pystac-client=0.8.0 + - pystac=1.10.1 + - python-blosc=1.11.1 - python=3.10.13 - rasterio=1.3.7 - rasterstats=0.19.0 - rechunker=0.5.2 - - requests=2.31.0 - - rio-cogeo=5.1.1 - - rioxarray=0.15.0 - - rtree=1.1.0 - - s3fs=2023.12.2 - - satpy=0.47.0 + - requests=2.32.1 + - rio-cogeo=5.3.0 + - rioxarray=0.15.5 + - rtree=1.2.0 + - s3fs=2024.5.0 + - satpy=0.48.0 - scikit-image=0.22.0 - - scikit-learn=1.3.2 - - scipy=1.11.4 - - seaborn=0.13.1 + - scikit-learn=1.4.2 + - scipy=1.13.0 + - seaborn=0.13.2 - shapely=2.0.1 - - sliderule=4.1.0 - - sparse=0.15.0 + - sliderule=4.4.0 + - sparse=0.15.3 - stackstac=0.5.0 - - statsmodels=0.14.1 - - tiledb-py=0.19.1 - - timezonefinder=6.4.1 - - tqdm=4.66.1 - - unidecode=1.3.7 - - xarray-datatree=0.0.13 - - xarray-spatial=0.3.5 - - xarray=2023.12.0 - - xarrayutils=2.0.0 + - statsmodels=0.14.2 + - tiledb-py=0.19.1 + - timezonefinder=6.4.1 + - tqdm=4.66.4 + - unidecode=1.3.8 + - unzip=6.0 + - xarray-datatree=0.0.14 + - xarray-spatial=0.4.0 + - xarray=2024.5.0 + - xarrayutils=2.0.1 - xbatcher=0.3.0 - xcape=0.1.4 - - xclim=0.46.0 - - xcube=0.9.1 - - xesmf=0.8.2 + - xclim=0.49.0 + - xcube=1.5.1 + - xesmf=0.8.5 - xgboost=2.0.3 - xgcm=0.8.1 - xhistogram=0.3.2 @@ -113,11 +116,9 @@ dependencies: - xmltodict=0.13.0 - xpublish=0.3.3 - xrft=1.0.1 - - zarr=2.16.1 - - pip=23.3.2 + - zarr=2.18.1 + - pip=24.0 - pip: - - morecantile==5.1.0 - - rio-tiler==6.2.8 -variables: - MAAP_CONF: '/maap-py/' - + - morecantile==5.3.0 + - rio-tiler==6.6.1 + - git+https://github.com/MAAP-Project/maap-py.git@v4.0.0 \ No newline at end of file diff --git a/base_images/python/docker/Dockerfile b/base_images/python/docker/Dockerfile new file mode 100644 index 00000000..734faf8a --- /dev/null +++ b/base_images/python/docker/Dockerfile @@ -0,0 +1,23 @@ +FROM continuumio/miniconda3:23.10.0-1 +ENV LANG en_US.UTF-8 +ENV TZ US/Pacific +ARG DEBIAN_FRONTEND=noninteractive + +RUN mkdir /projects +WORKDIR /projects +RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd + +COPY ./environment.yml /tmp +RUN conda env create -y -f "/tmp/environment.yml" \ + && find /opt/conda/ -follow -type f -name '*.a' -delete \ + && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ + && /opt/conda/bin/conda clean -afy + +RUN conda init && echo "conda activate python" >> ~/.bashrc + +SHELL ["/bin/bash", "-c"] +RUN source activate python && \ + conda list + +ARG IMAGE_REF +ENV DOCKERIMAGE_PATH=${IMAGE_REF} \ No newline at end of file diff --git a/base_images/python/environment.yml b/base_images/python/environment.yml new file mode 100644 index 00000000..a10a34a1 --- /dev/null +++ b/base_images/python/environment.yml @@ -0,0 +1,55 @@ +name: python +channels: + - conda-forge + - nodefaults +dependencies: + - anywidget=0.9.12 + - awscli=2.14.1 + - backoff=2.2.1 + - basemap=1.3.7 + - boto3=1.34.106 + - cython=3.0.10 + - earthengine-api=0.1.403 + - gdal=3.7.0 + - geocube=0.5.2 + - geopandas=0.14.4 + - groff=1.22.4 + - h5py=3.9.0 + - hdf5=1.14.0 + - httpx=0.27.0 + - lonboard=0.9.3 + - mapclassify=2.6.1 + - matplotlib=3.7.3 + - mizani=0.11.3 + - mpl-scatter-density=0.7 + - numba=0.59.1 + - numpy=1.26.4 + - pandas=2.2.2 + - pandarallel=1.6.5 + - pycurl=7.45.1 + - pygeos=0.14 + - pyogrio=0.6.0 + - pyproj=3.5.0 + - pystac-client=0.7.5 + - python=3.10.13 + - rasterio=1.3.7 + - rasterstats=0.19.0 + - requests=2.31.0 + - rio-cogeo=5.3.0 + - rtree=1.2.0 + - s3fs=2024.5.0 + - scikit-learn=1.4.2 + - scipy=1.13.0 + - seaborn=0.13.2 + - shapely=2.0.1 + - sliderule=4.4.0 + - statsmodels=0.14.2 + - tqdm=4.66.4 + - unidecode=1.3.8 + - unzip=6.0 + - xmltodict=0.13.0 + - pip=24.0 + - pip: + - morecantile==5.3.0 + - rio-tiler==6.6.1 + - git+https://github.com/MAAP-Project/maap-py.git@v4.0.0 \ No newline at end of file diff --git a/base_images/r/docker/Dockerfile b/base_images/r/docker/Dockerfile index 3c9d8b43..1d56198f 100644 --- a/base_images/r/docker/Dockerfile +++ b/base_images/r/docker/Dockerfile @@ -43,21 +43,16 @@ RUN conda env create -y -f "/tmp/environment.yml" \ && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ && /opt/conda/bin/conda clean -afy -# Set the conda environment for all subsequent docker RUN commands -# When maap-py is updated and installed via our environment.yml, -# we won't need this line unless other envrionment specific commands are added -SHELL ["conda", "run", "-n", "r", "/bin/bash", "-c"] +RUN conda init && echo "conda activate r" >> ~/.bashrc +SHELL ["/bin/bash", "-c"] ADD . / RUN ["chmod", "+x", "/scripts/install_cran_packages_r.sh"] -RUN /scripts/install_cran_packages_r.sh +RUN source activate r && \ + /scripts/install_cran_packages_r.sh -# Install maap-py library -RUN mkdir /maap-py \ - && git clone --single-branch --branch v3.1.5 https://github.com/MAAP-Project/maap-py.git /maap-py/ \ - && pip install -e /maap-py/ - -RUN conda list +RUN source activate r && \ + conda list ARG IMAGE_REF ENV DOCKERIMAGE_PATH=${IMAGE_REF} \ No newline at end of file diff --git a/base_images/r/environment.yml b/base_images/r/environment.yml index cc9e33eb..f5197a4e 100644 --- a/base_images/r/environment.yml +++ b/base_images/r/environment.yml @@ -4,38 +4,62 @@ channels: - r - nodefaults dependencies: - - awscli=2.14.1 - - boto3=1.34.41 - - earthaccess=0.8.2 + - anywidget=0.9.12 + - awscli=2.14.1 + - backoff=2.2.1 + - basemap=1.3.7 + - boto3=1.34.106 + - cython=3.0.10 + - earthaccess=0.9.0 + - earthengine-api=0.1.404 + - gdal=3.7.0 + - geocube=0.5.2 + - geopandas=0.14.4 - groff=1.22.4 - - parallel=20231122 + - h5py=3.9.0 + - httpx=0.27.0 + - lonboard=0.9.3 + - mapclassify=2.6.1 + - matplotlib=3.7.3 + - mizani=0.11.4 + - mpl-scatter-density=0.7 + - numba=0.59.1 + - numpy=1.26.4 + - pandas=2.2.2 + - pandarallel=1.6.5 + - parallel=20240522 - perl=5.32.1 - - postgis=3.4.0 + - postgis=3.3.3 + - pycurl=7.45.1 + - pygeos=0.14 + - pyogrio=0.6.0 + - pyproj=3.5.0 + - pystac-client=0.7.5 - python=3.10.13 - r=4.2 - r-arrow=14.0.1 - r-aws.s3=0.3.22 - r-base=4.2.3 - - r-BiocManager=1.30.22 - - r-broom=1.0.5 + - r-BiocManager=1.30.23 + - r-broom=1.0.6 - r-car=3.1_2 - r-chron=2.3_61 - r-classint=0.4_10 - r-covr=3.6.4 - - r-data.table=1.14.10 - - r-dbi=1.1.3 - - r-deldir=2.0_2 + - r-data.table=1.15.2 + - r-dbi=1.2.2 + - r-deldir=2.0_4 - r-devemf=4.0_2 - r-dplyr=1.1.4 - r-egg=0.4.5 - r-essentials=4.2 - - r-fs=1.6.3 + - r-fs=1.6.4 - r-geojsonio=0.11.3 - r-geojsonsf=2.0.3 - - r-geor=1.9_2 + - r-geor=1.9_4 - r-geosphere=1.5_18 - - r-ggnewscale=0.4.9 - - r-ggplot2=3.4.4 + - r-ggnewscale=0.4.10 + - r-ggplot2=3.5.1 - r-ggspatial=1.1.9 - r-ggtext=0.1.2 - r-gridExtra=2.3 @@ -44,25 +68,25 @@ dependencies: - r-hdf5r=1.3.8 - r-irkernel=1.3.2 - r-jpeg=0.1_10 - - r-knitr=1.45 + - r-knitr=1.46 - r-leafem=0.2.3 - - r-leaflet=2.2.1 - - r-lidR=4.0.4 + - r-leaflet=2.2.2 + - r-lidR=4.1.1 - r-lwgeom=0.2_13 - r-mapdata=2.3.1 - r-mapproj=1.2.11 - - r-maps=3.4.1.1 + - r-maps=3.4.2 - r-maptools=1.1_8 - r-mapview=2.11.2 - r-microbenchmark=1.4.10 - - r-ncdf4=1.22 + - r-ncdf4=1.21 - r-nlme=3.1_164 - - r-patchwork=1.1.3 + - r-patchwork=1.2.0 - r-plogr=0.2.0 - r-plyr=1.8.9 - r-png=0.1_8 - - r-pool=1.0.1 - - r-proj4=1.0_13 + - r-pool=1.0.3 + - r-proj4=1.0_12 - r-proto=1.0.0 - r-protolite=2.3.0 - r-randomFields=3.3.14 @@ -70,15 +94,16 @@ dependencies: - r-raster=3.6_26 - r-rcolorbrewer=1.1_3 - r-readxl=1.4.3 - - r-reticulate=1.34.0 + - r-reticulate=1.37.0 + - r-rgdal=1.6_6 - r-rgee=1.1.7 - - r-rgeos=0.6_4 + - r-rgeos=0.6_3 - r-rlas=1.6.2 - r-rlist=0.4.6.2 - - r-rmarkdown=2.25 - - r-rnaturalearth=0.3.4 - - r-rnaturalearthdata=0.1.0 - - r-RNetCDF=2.6_2 + - r-rmarkdown=2.27 + - r-rnaturalearth=1.0.1 + - r-rnaturalearthdata=1.0.0 + - r-RNetCDF=2.9_2 - r-rockchalk=1.8.157 - r-rodbc=1.3_23 - r-RPostgres=1.4.5 @@ -86,29 +111,44 @@ dependencies: - r-RSQLite=2.3.4 - r-rstac=0.9.2_5 - r-scales=1.3.0 - - r-sf=1.0_14 + - r-sf=1.0_13 - r-snow=0.4_4 - r-spacetime=1.3_1 - - r-spatialreg=1.3_1 + - r-spatialreg=1.3_2 - r-spatstat=3.0_7 - - r-spdep=1.3_1 + - r-spdep=1.3_3 - r-sqldf=0.4_11 - - r-stars=0.6_4 + - r-stars=0.6_5 - r-stringr=1.5.1 - - r-terra=1.7_55 - - r-testthat=3.2.1 + - r-terra=1.7_29 + - r-testthat=3.2.1.1 - r-tibble=3.2.1 - r-tidync=0.3.0 - - r-tidyr=1.3.0 + - r-tidyr=1.3.1 - r-tidyverse=2.0.0 - r-tmap=3.3_4 - r-units=0.8_5 - - r-viridis=0.6.4 - - pip=23.3.2 + - r-viridis=0.6.5 + - rasterio=1.3.7 + - rasterstats=0.19.0 + - requests=2.32.2 + - rio-cogeo=5.3.0 + - rtree=1.2.0 + - s3fs=2024.5.0 + - scikit-learn=1.5.0 + - scipy=1.13.1 + - seaborn=0.13.2 + - shapely=2.0.1 + - sliderule=4.4.0 + - statsmodels=0.14.2 + - tqdm=4.66.4 + - unidecode=1.3.8 + - unzip=6.0 + - xmltodict=0.13.0 + - pip=24.0 - pip: - ff==0.0.10 - grid==0.7.1 - - rio-tiler==6.2.8 -variables: - MAAP_CONF: '/maap-py/' - + - morecantile==5.3.0 + - rio-tiler==6.6.1 + - git+https://github.com/MAAP-Project/maap-py.git@v4.0.0 \ No newline at end of file diff --git a/base_images/vanilla/docker/Dockerfile b/base_images/vanilla/docker/Dockerfile deleted file mode 100644 index 21753871..00000000 --- a/base_images/vanilla/docker/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM continuumio/miniconda3:23.10.0-1 -ENV LANG en_US.UTF-8 -ENV TZ US/Pacific -ARG DEBIAN_FRONTEND=noninteractive - -RUN mkdir /projects -WORKDIR /projects -RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd - -COPY ./environment.yml /tmp -RUN conda env create -y -f "/tmp/environment.yml" \ - && find /opt/conda/ -follow -type f -name '*.a' -delete \ - && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ - && /opt/conda/bin/conda clean -afy - -# Set the conda environment for all subsequent docker RUN commands -# When maap-py is updated and installed via our environment.yml, -# we won't need this line unless other envrionment specific commands are added -SHELL ["conda", "run", "-n", "vanilla", "/bin/bash", "-c"] - -# Install maap-py library -RUN mkdir /maap-py \ - && git clone --single-branch --branch v3.1.5 https://github.com/MAAP-Project/maap-py.git /maap-py/ \ - && pip install -e /maap-py/ - -RUN conda list - -ARG IMAGE_REF -ENV DOCKERIMAGE_PATH=${IMAGE_REF} diff --git a/base_images/vanilla/environment.yml b/base_images/vanilla/environment.yml index 2823f482..fddb0d58 100644 --- a/base_images/vanilla/environment.yml +++ b/base_images/vanilla/environment.yml @@ -52,3 +52,4 @@ dependencies: variables: MAAP_CONF: '/maap-py/' + diff --git a/devfiles/devfile_compile.py b/devfiles/devfile_compile.py new file mode 100644 index 00000000..2ebf7b75 --- /dev/null +++ b/devfiles/devfile_compile.py @@ -0,0 +1,33 @@ +import yaml +import json +import os + +dir_path = os.path.dirname(os.path.realpath(__file__)) + +INDEX_FILE = "index.json" +META_FILE = "meta.yaml" + +# Build the index.json dev registry file +with open(os.path.join(dir_path, INDEX_FILE), "w") as registry_index_file: + registry_index_file.write("[") + +i = 0 + +for subdir, dirs, files in os.walk(dir_path): + for file in files: + if file == META_FILE: + # Append the devfile metadata to the registry index + print("Updating " + os.path.join(subdir, file)) + + if i > 0: + with open(os.path.join(dir_path, INDEX_FILE), "a") as registry_index_file: + registry_index_file.write(", ") + + i += 1 + + with open(os.path.join(subdir, file), 'r') as yaml_in, open(os.path.join(dir_path, INDEX_FILE), "a") as json_out: + yaml_object = yaml.safe_load(yaml_in) + json.dump(yaml_object, json_out) + +with open(os.path.join(dir_path, INDEX_FILE), "a") as registry_index_file: + registry_index_file.write("]") diff --git a/devfiles/edav/devfile/meta.yaml b/devfiles/edav/devfile/meta.yaml index 2977c474..866e87b9 100644 --- a/devfiles/edav/devfile/meta.yaml +++ b/devfiles/edav/devfile/meta.yaml @@ -1,6 +1,8 @@ --- -displayName: "MAAP ESA EDAV" -description: Latest version of MAAP ESA EDAV +displayName: "ESA EDAV" +description: "Latest version of MAAP ESA EDAV" tags: ["EDAV", "MAAP"] icon: /devfiles/edav/devfile/earth.png +links: + self: "/devfiles/edav/devfile/devfile.yaml" globalMemoryLimit: 2710Mi diff --git a/devfiles/index_example.json b/devfiles/index_example.json index 4e94f71a..f0b9277d 100644 --- a/devfiles/index_example.json +++ b/devfiles/index_example.json @@ -11,12 +11,12 @@ "icon": "/images/r.png", "globalMemoryLimit": "2710Mi", "links": { - "self": "/devfiles/maap-r/devfile_2.0.yaml" + "self": "/devfiles/r/devfile_2.0.yaml" } }, { - "displayName": "Basic", - "description": "MAAP Basic workspace v2.0. Released September 2022.", + "displayName": "Python", + "description": "MAAP Python workspace v2.0. Released September 2022.", "tags": [ "JupyterLab", "Python", @@ -25,7 +25,7 @@ "icon": "/images/jupyter.png", "globalMemoryLimit": "2810Mi", "links": { - "self": "/devfiles/maap-vanilla/devfile_2.0.yaml" + "self": "/devfiles/python/devfile_2.0.yaml" } }, { @@ -53,12 +53,12 @@ "icon": "/images/r.png", "globalMemoryLimit": "2710Mi", "links": { - "self": "/devfiles/maap-r/devfile.yaml" + "self": "/devfiles/r/devfile.yaml" } }, { - "displayName": "Basic (v1.0)", - "description": "MAAP Basic workspace v1.0. Released February 2022.", + "displayName": "Python (v1.0)", + "description": "MAAP Python workspace v1.0. Released February 2022.", "tags": [ "JupyterLab", "Python", @@ -67,7 +67,7 @@ "icon": "/images/jupyter.png", "globalMemoryLimit": "2810Mi", "links": { - "self": "/devfiles/maap-vanilla/devfile.yaml" + "self": "/devfiles/python/devfile.yaml" } } ] diff --git a/devfiles/isce3/devfile/devfile.yaml b/devfiles/isce3/devfile/devfile.yaml index 502a3a11..2b8f66d3 100644 --- a/devfiles/isce3/devfile/devfile.yaml +++ b/devfiles/isce3/devfile/devfile.yaml @@ -31,8 +31,13 @@ components: emptyDir: {} containers: - name: jupyter - image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab3/isce3:develop' + image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab/isce3:develop' imagePullPolicy: Always + env: + - name: DOCKERIMAGE_PATH + value: 'mas.dit.maap-project.org/root/maap-workspaces/base_images/isce3:develop' + - name: MAAP_API_HOST + value: ade.dit.maap-project.org resources: limits: memory: 8096Mi diff --git a/devfiles/isce3/devfile/meta.yaml b/devfiles/isce3/devfile/meta.yaml index c5c3ac94..a57442da 100644 --- a/devfiles/isce3/devfile/meta.yaml +++ b/devfiles/isce3/devfile/meta.yaml @@ -1,6 +1,8 @@ --- -displayName: "MAAP ISCE3" -description: "MAAP ISCE3 Version: 3.1.5" +displayName: "ISCE3" +description: "ISCE3 workspace version: 3.1.5" tags: ["JupyterLab", "Python", "MAAP", "ISCE3"] icon: /devfiles/isce3/devfile/isce.png +links: + self: "/devfiles/isce3/devfile/devfile.yaml" globalMemoryLimit: 2710Mi diff --git a/devfiles/pangeo/devfile/devfile.yaml b/devfiles/pangeo/devfile/devfile.yaml index b30c43d5..18cfff73 100644 --- a/devfiles/pangeo/devfile/devfile.yaml +++ b/devfiles/pangeo/devfile/devfile.yaml @@ -31,8 +31,13 @@ components: emptyDir: {} containers: - name: jupyter - image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab3/pangeo:develop' + image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab/pangeo:develop' imagePullPolicy: Always + env: + - name: DOCKERIMAGE_PATH + value: 'mas.dit.maap-project.org/root/maap-workspaces/base_images/pangeo:develop' + - name: MAAP_API_HOST + value: ade.dit.maap-project.org resources: limits: memory: 8096Mi diff --git a/devfiles/pangeo/devfile/meta.yaml b/devfiles/pangeo/devfile/meta.yaml index c0e8f90a..65609074 100644 --- a/devfiles/pangeo/devfile/meta.yaml +++ b/devfiles/pangeo/devfile/meta.yaml @@ -1,6 +1,8 @@ --- displayName: "Pangeo" -description: "MAAP Pangeo version: 3.1.5" +description: "Pangeo workspace version: 3.1.5" tags: ["Pangeo", "JupyterLab", "MAAP"] icon: /devfiles/pangeo/devfile/pangeo_simple_logo.svg +links: + self: "/devfiles/pangeo/devfile/devfile.yaml" globalMemoryLimit: 2710Mi diff --git a/devfiles/vanilla/devfile/devfile.yaml b/devfiles/python/devfile/devfile.yaml similarity index 91% rename from devfiles/vanilla/devfile/devfile.yaml rename to devfiles/python/devfile/devfile.yaml index 5ced3c3c..f63c1ad5 100644 --- a/devfiles/vanilla/devfile/devfile.yaml +++ b/devfiles/python/devfile/devfile.yaml @@ -1,6 +1,6 @@ apiVersion: 1.0.0 metadata: - generateName: vanilla- + generateName: python- attributes: editorFree: 'true' components: @@ -31,8 +31,13 @@ components: emptyDir: {} containers: - name: jupyter - image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab3/vanilla:develop' + image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab/python:develop' imagePullPolicy: Always + env: + - name: DOCKERIMAGE_PATH + value: 'mas.dit.maap-project.org/root/maap-workspaces/base_images/vanilla:develop' + - name: MAAP_API_HOST + value: ade.dit.maap-project.org resources: limits: memory: 8096Mi diff --git a/devfiles/python/devfile/meta.yaml b/devfiles/python/devfile/meta.yaml new file mode 100644 index 00000000..c1e833a1 --- /dev/null +++ b/devfiles/python/devfile/meta.yaml @@ -0,0 +1,8 @@ +--- +displayName: "Python (default)" +description: "Python workspace version: 3.1.5" +tags: ["JupyterLab", "Python", "MAAP"] +icon: /devfiles/python/devfile/python-logo-generic.svg +links: + self: "/devfiles/python/devfile/devfile.yaml" +globalMemoryLimit: 2710Mi diff --git a/devfiles/python/devfile/python-logo-generic.svg b/devfiles/python/devfile/python-logo-generic.svg new file mode 100644 index 00000000..46a20b1a --- /dev/null +++ b/devfiles/python/devfile/python-logo-generic.svg @@ -0,0 +1,63 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/devfiles/r/devfile/devfile.yaml b/devfiles/r/devfile/devfile.yaml index 4e14ea30..510ddb0b 100644 --- a/devfiles/r/devfile/devfile.yaml +++ b/devfiles/r/devfile/devfile.yaml @@ -31,8 +31,13 @@ components: emptyDir: {} containers: - name: jupyter - image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab3/r:develop' + image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab/r:develop' imagePullPolicy: Always + env: + - name: DOCKERIMAGE_PATH + value: 'mas.dit.maap-project.org/root/maap-workspaces/base_images/r:develop' + - name: MAAP_API_HOST + value: ade.dit.maap-project.org resources: limits: memory: 8096Mi diff --git a/devfiles/r/devfile/meta.yaml b/devfiles/r/devfile/meta.yaml index f4f2b868..61d3ffad 100644 --- a/devfiles/r/devfile/meta.yaml +++ b/devfiles/r/devfile/meta.yaml @@ -1,6 +1,8 @@ --- -displayName: "MAAP R Stable" -description: "MAAP R version: 3.1.5" +displayName: "R/Python" +description: "R/Python workspace version: 3.1.5" tags: ["Python", "R", "JupyterLab", "MAAP"] icon: /devfiles/r/devfile/r.png +links: + self: "/devfiles/r/devfile/devfile.yaml" globalMemoryLimit: 2710Mi diff --git a/devfiles/vanilla/devfile/jupyter.png b/devfiles/vanilla/devfile/jupyter.png deleted file mode 100644 index 2007cbbec83824b245b73f9deb3d4c105ed726f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13846 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 /etc/profile -RUN conda list - # Reset Shell SHELL ["/bin/sh", "-c"] diff --git a/jupyterlab3/entrypoint.sh b/jupyterlab/entrypoint.sh similarity index 99% rename from jupyterlab3/entrypoint.sh rename to jupyterlab/entrypoint.sh index 2254a59e..9cc24763 100644 --- a/jupyterlab3/entrypoint.sh +++ b/jupyterlab/entrypoint.sh @@ -168,7 +168,7 @@ export SHELL=/bin/bash VERSION=$(jupyter lab --version) if [[ $VERSION > '2' ]] && [[ $VERSION < '3' ]]; then jupyter lab --ip=0.0.0.0 --port=3100 --allow-root --NotebookApp.token='' --NotebookApp.base_url=$PREVIEW_URL --no-browser --debug -elif [[ $VERSION > '3' ]] && [[ $VERSION < '4' ]]; then +elif [[ $VERSION > '3' ]] && [[ $VERSION < '5' ]]; then jupyter lab --ip=0.0.0.0 --port=3100 --allow-root --ContentsManager.allow_hidden=True --ServerApp.token='' --ServerApp.base_url=$PREVIEW_URL --no-browser --debug --ServerApp.disable_check_xsrf=True --ResourceUseDisplay.mem_limit=$MEMORY --ResourceUseDisplay.mem_warning_threshold=0.2 else echo "Error! Jupyterlab version not supported." diff --git a/jupyterlab3/environments.json b/jupyterlab/environments.json similarity index 100% rename from jupyterlab3/environments.json rename to jupyterlab/environments.json diff --git a/jupyterlab3/jupyter_patch b/jupyterlab/jupyter_patch similarity index 100% rename from jupyterlab3/jupyter_patch rename to jupyterlab/jupyter_patch diff --git a/jupyterlab/pangeo/environment.yml b/jupyterlab/pangeo/environment.yml new file mode 100644 index 00000000..11219d0a --- /dev/null +++ b/jupyterlab/pangeo/environment.yml @@ -0,0 +1,53 @@ +name: pangeo +channels: + - conda-forge + - nodefaults +dependencies: + - black=24.4.2 + - folium=0.16.0 + - gh-scoped-creds=4.1 + - gh=2.49.2 + - git-lfs=3.5.1 + - gitpython=3.1.43 + - ipyevents=2.0.2 + - ipyleaflet=0.19.1 + - ipytree=0.2.2 + - ipywidgets=8.1.2 + - jupyter_server=2.12.5 + - jupyter-panel-proxy=0.1.0 + - jupyterlab_widgets=3.0.10 + - jupyterlab-git=0.50.0 + - jupyterlab-s3-browser=0.12.0 + - jupyterlab=4.2.0 + - nb_conda=2.2.1 + - nb_conda_kernels=2.5.1 + - nbstripout=0.7.1 + - nodejs=20.1.0 + - pangeo-notebook=2024.05.20 + - plotly=5.22.0 + - plotnine=0.13.6 + - pydantic=2.7.1 + - python-gist=0.10.6 + - python-graphviz=0.20.3 + - rise=5.7.1 + - snakeviz=2.2.0 + - xarray_leaflet=0.2.3 + - pip=24.0 + - pip: + - jupyter-resource-usage==1.0.2 + - git+https://github.com/MAAP-Project/stac_ipyleaflet.git@0.3.6#egg-info=stac_ipyleaflet + - rio-tiler==6.2.8 + - maap-algorithms-jupyter-extension==0.3.1 + - maap-che-sidebar-visibility-jupyter-extension==1.1.2 + - maap-dps-jupyter-extension==0.7.1 + - maap-edsc-jupyter-extension==1.1.1 + - maap-help-jupyter-extension==2.0.0 + - maap-jupyter-server-extension==2.0.7 + - maap-libs-jupyter-extension==1.2.3 + - maap-user-workspace-management-jupyter-extension==0.1.2 +variables: + TITILER_STAC_ENDPOINT: 'https://titiler-stac.maap-project.org/' + TITILER_ENDPOINT: 'https://titiler.maap-project.org/' + STAC_CATALOG_NAME: 'MAAP STAC' + STAC_CATALOG_URL: 'https://stac.maap-project.org/' + STAC_BROWSER_URL: 'https://stac-browser.maap-project.org/' diff --git a/jupyterlab/shared/environment.yml b/jupyterlab/shared/environment.yml new file mode 100644 index 00000000..a77b9cc7 --- /dev/null +++ b/jupyterlab/shared/environment.yml @@ -0,0 +1,34 @@ +name: WORKSPACE_ENVIRONMENT_NAME +channels: + - conda-forge + - nodefaults +dependencies: + - folium=0.16.0 + - gitpython=3.1.43 + - ipyleaflet=0.19.1 + - jupyter_server=2.12.5 + - jupyterlab=4.2.0 + - jupyterlab-git=0.50.0 + - jupyterlab_widgets=3.0.11 + - nodejs=20.1.0 + - notebook=6.4.12 # Should not upgrade yet because appears notebook v7 doesnt support extensions + - plotly=5.22.0 + - plotnine=0.13.6 + - pip=24.0 + - pip: + - jupyter-resource-usage==1.0.2 + - git+https://github.com/MAAP-Project/stac_ipyleaflet.git@0.3.6#egg-info=stac_ipyleaflet + - maap-algorithms-jupyter-extension==0.3.1 + - maap-che-sidebar-visibility-jupyter-extension==1.1.2 + - maap-dps-jupyter-extension==0.7.1 + - maap-edsc-jupyter-extension==1.1.1 + - maap-help-jupyter-extension==2.0.0 + - maap-jupyter-server-extension==2.0.7 + - maap-libs-jupyter-extension==1.2.3 + - maap-user-workspace-management-jupyter-extension==0.1.2 +variables: + TITILER_STAC_ENDPOINT: 'https://titiler-stac.maap-project.org/' + TITILER_ENDPOINT: 'https://titiler.maap-project.org/' + STAC_CATALOG_NAME: 'MAAP STAC' + STAC_CATALOG_URL: 'https://stac.maap-project.org/' + STAC_BROWSER_URL: 'https://stac-browser.maap-project.org/' diff --git a/jupyterlab3/pangeo/environment.yml b/jupyterlab3/pangeo/environment.yml deleted file mode 100644 index 2cba7c6b..00000000 --- a/jupyterlab3/pangeo/environment.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: pangeo -channels: - - conda-forge - - nodefaults -dependencies: - - black=24.2.0 - - folium=0.15.1 - - gh-scoped-creds=4.1 - - gh=2.40.1 - - git-lfs=3.4.1 - - gitpython=3.1.40 - - ipyevents=2.0.2 - - ipyleaflet=0.18.1 - - ipytree=0.2.2 - - ipywidgets=8.0.6 - - jupyter-packaging=0.12.3 - - jupyter-panel-proxy=0.1.0 - - jupyterlab_widgets=3.0.7 - - jupyterlab-git=0.34.2 - - jupyterlab-s3-browser=0.12.0 - - jupyterlab=3.6.3 - - nb_conda_kernels=2.3.1 - - nbstripout=0.6.1 - - nodejs=18.15.0 - - pangeo-notebook=2023.04.15 - - plotly=5.18.0 - - plotnine=0.12.2 - - pydantic=2.5.2 - - python-gist=0.10.6 - - python-graphviz=0.20.1 - - rise=5.7.1 - - snakeviz=2.2.0 - - xarray_leaflet=0.2.3 - - pip=23.3.2 - - pip: - - jupyter-resource-usage==0.7.2 - - rio-tiler==6.2.8 - - git+https://github.com/MAAP-Project/stac_ipyleaflet.git@0.3.6#egg-info=stac_ipyleaflet -variables: - TITILER_STAC_ENDPOINT: 'https://titiler-stac.maap-project.org/' - TITILER_ENDPOINT: 'https://titiler.maap-project.org/' - STAC_CATALOG_NAME: 'MAAP STAC' - STAC_CATALOG_URL: 'https://stac.maap-project.org/' - STAC_BROWSER_URL: 'https://stac-browser.maap-project.org/' diff --git a/jupyterlab3/shared/environment.yml b/jupyterlab3/shared/environment.yml deleted file mode 100644 index 32f3862f..00000000 --- a/jupyterlab3/shared/environment.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: WORKSPACE_ENVIRONMENT_NAME -channels: - - conda-forge - - nodefaults -dependencies: - - folium=0.15.1 - - gitpython=3.1.40 - - ipyleaflet=0.18.1 - - jupyterlab=3.6.3 - - jupyterlab-git=0.34.2 - - jupyter-packaging=0.12.3 - - jupyterlab_widgets=3.0.7 - - nodejs=18.15.0 - - plotly=5.18.0 - - plotnine=0.12.2 - - pip=23.3.2 - - pip: - - jupyter-resource-usage==0.7.2 - - git+https://github.com/MAAP-Project/stac_ipyleaflet.git@0.3.6#egg-info=stac_ipyleaflet -variables: - TITILER_STAC_ENDPOINT: 'https://titiler-stac.maap-project.org/' - TITILER_ENDPOINT: 'https://titiler.maap-project.org/' - STAC_CATALOG_NAME: 'MAAP STAC' - STAC_CATALOG_URL: 'https://stac.maap-project.org/' - STAC_BROWSER_URL: 'https://stac-browser.maap-project.org/'