From 72823ce027d0e37870015cb92eb2c9927113ae92 Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Mon, 21 Aug 2023 13:51:54 -0700 Subject: [PATCH 01/15] Feature/update maap help tour (#61) updated maap help jupyter extension to version 1.0.0 --- jupyterlab3/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 5537d8d3..a32eb4a4 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -61,7 +61,7 @@ RUN jupyter labextension install @maap-jupyterlab/umf-jupyter-extension@1.0.0 -- RUN jupyter labextension install @maap-jupyterlab/maap-libs-jupyter-extension@1.0.2 --no-build RUN jupyter labextension install @maap-jupyterlab/edsc-jupyter-extension@1.0.4 --no-build RUN jupyter labextension install @maap-jupyterlab/user-workspace-management-jupyter-extension@0.0.3 --no-build -RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@0.0.46 --no-build +RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.0 --no-build RUN jupyter labextension install @maap-jupyterlab/che-sidebar-visibility-jupyter-extension@1.0.1 --no-build RUN jupyter lab build && \ From 00dceb4a7af8dcbf8c21ee1b51cca501e4f5311b Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Thu, 7 Sep 2023 11:38:12 -0700 Subject: [PATCH 02/15] 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 --- jupyterlab3/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index a32eb4a4..386cf019 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -60,7 +60,7 @@ RUN jupyter labextension install @maap-jupyterlab/algorithms_jupyter_extension@0 RUN jupyter labextension install @maap-jupyterlab/umf-jupyter-extension@1.0.0 --no-build RUN jupyter labextension install @maap-jupyterlab/maap-libs-jupyter-extension@1.0.2 --no-build RUN jupyter labextension install @maap-jupyterlab/edsc-jupyter-extension@1.0.4 --no-build -RUN jupyter labextension install @maap-jupyterlab/user-workspace-management-jupyter-extension@0.0.3 --no-build +RUN jupyter labextension install @maap-jupyterlab/user-workspace-management-jupyter-extension@0.0.5 --no-build RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.0 --no-build RUN jupyter labextension install @maap-jupyterlab/che-sidebar-visibility-jupyter-extension@1.0.1 --no-build From e6d5677a77b8295df6eadf0a303dcf9dbf69d143 Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Fri, 15 Sep 2023 14:09:25 -0700 Subject: [PATCH 03/15] Added memory extension (#59) added changes from cluttered commit branch --- jupyterlab3/docker/Dockerfile | 1 + jupyterlab3/entrypoint.sh | 50 ++++++++++++++++++++++++++++++----- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 386cf019..176b28c6 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -31,6 +31,7 @@ RUN echo "Checking if environment.yml exists for ${BASE_IMAGE_TYPE}" \ RUN npm install typescript -g RUN pip install jupyter-server==2.5.0 +RUN pip install jupyter-resource-usage==0.7.2 # Adjust permissions on home directory so writable by group root. RUN chgrp -Rf root /home/$NB_USER && chmod -Rf g+w /home/$NB_USER diff --git a/jupyterlab3/entrypoint.sh b/jupyterlab3/entrypoint.sh index 4e44a190..83e6368d 100644 --- a/jupyterlab3/entrypoint.sh +++ b/jupyterlab3/entrypoint.sh @@ -1,7 +1,7 @@ #!/bin/bash # A more robust method of constructing the workspace url prefix -get_workspace_url_prefix() { +get_request_data() { python3 - <-che" + NAMESPACE="$CHE_WORKSPACE_NAMESPACE-che" if test -z "$PREVIEW_URL" then PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_NAMESPACE-$CHE_WORKSPACE_ID") # Che 7 UAT configuration fallback where the default namespace is "-", this will be deprecated + NAMESPACE="$CHE_WORKSPACE_NAMESPACE-$CHE_WORKSPACE_ID" fi if test -z "$PREVIEW_URL" then PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_ID") # Che 6 configuration fallback where the default namespace is the workspace id, this will be deprecated + NAMESPACE="$CHE_WORKSPACE_ID" fi if ! test -z "$PREVIEW_URL" # exit loop when it has a preview_url then @@ -115,13 +131,35 @@ mkdir -p /projects/.ssh/ chmod 700 /projects/.ssh/ service ssh restart +# Get maximum memory allocation for this workspace to display at bottom of notebook +get_max_memory() { + python3 - < '2' ]] && [[ $VERSION < '3' ]]; then SHELL=/bin/bash 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 - SHELL=/bin/bash 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 + SHELL=/bin/bash 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." -fi +fi \ No newline at end of file From 6e3e65aba2bb72a96e20929a7c4a1403049c0206 Mon Sep 17 00:00:00 2001 From: bsatoriu Date: Tue, 26 Sep 2023 11:58:45 -0700 Subject: [PATCH 04/15] hysds base-image [skip ci] (#65) --- base_images/hysds/docker/Dockerfile | 9 + base_images/hysds/docker/entrypoint.sh | 66 ++++ base_images/hysds/docker/proxy-httpd.conf | 372 ++++++++++++++++++++++ 3 files changed, 447 insertions(+) create mode 100644 base_images/hysds/docker/Dockerfile create mode 100644 base_images/hysds/docker/entrypoint.sh create mode 100644 base_images/hysds/docker/proxy-httpd.conf diff --git a/base_images/hysds/docker/Dockerfile b/base_images/hysds/docker/Dockerfile new file mode 100644 index 00000000..e8f2178e --- /dev/null +++ b/base_images/hysds/docker/Dockerfile @@ -0,0 +1,9 @@ +# docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf + +FROM httpd:2.4 + +RUN apt-get update && apt-get install -y python3 +COPY ./proxy-httpd.conf /usr/local/apache2/conf/httpd.conf +COPY ./entrypoint.sh /entrypoint.sh + +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] diff --git a/base_images/hysds/docker/entrypoint.sh b/base_images/hysds/docker/entrypoint.sh new file mode 100644 index 00000000..24ef19dc --- /dev/null +++ b/base_images/hysds/docker/entrypoint.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# A more robust method of constructing the workspace url prefix +get_workspace_url_prefix() { + python3 - <-che" + if test -z "$PREVIEW_URL" + then + PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_NAMESPACE-$CHE_WORKSPACE_ID") # Che 7 UAT configuration fallback where the default namespace is "-", this will be deprecated + fi + if test -z "$PREVIEW_URL" + then + PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_ID") # Che 6 configuration fallback where the default namespace is the workspace id, this will be deprecated + fi + if ! test -z "$PREVIEW_URL" # exit loop when it has a preview_url + then + break + fi + date # print timestamp in the logs if it doesn't get a URL + sleep 1 +done +# end more robust method + +PREVIEW_URL="$PREVIEW_URL" /usr/local/bin/httpd-foreground diff --git a/base_images/hysds/docker/proxy-httpd.conf b/base_images/hysds/docker/proxy-httpd.conf new file mode 100644 index 00000000..435d7133 --- /dev/null +++ b/base_images/hysds/docker/proxy-httpd.conf @@ -0,0 +1,372 @@ +# +# This is the main Apache HTTP server configuration file. It contains the +# configuration directives that give the server its instructions. +# See for detailed information. +# In particular, see +# +# for a discussion of each configuration directive. +# +# Do NOT simply read the instructions in here without understanding +# what they do. They're here only as hints or reminders. If you are unsure +# consult the online docs. You have been warned. +# +# Configuration and logfile names: If the filenames you specify for many +# of the server's control files begin with "/" (or "drive:/" for Win32), the +# server will use that explicit path. If the filenames do *not* begin +# with "/", the value of ServerRoot is prepended -- so "logs/access_log" +# with ServerRoot set to "/usr/local/apache2" will be interpreted by the +# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" +# will be interpreted as '/logs/access_log'. + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# Do not add a slash at the end of the directory path. If you point +# ServerRoot at a non-local disk, be sure to specify a local disk on the +# Mutex directive, if file-based mutexes are used. If you wish to share the +# same ServerRoot for multiple httpd daemons, you will need to change at +# least PidFile. +# +ServerRoot "/usr/local/apache2" + +# +# Mutex: Allows you to set the mutex mechanism and mutex file directory +# for individual mutexes, or change the global defaults +# +# Uncomment and change the directory if mutexes are file-based and the default +# mutex file directory is not on a local disk or is not appropriate for some +# other reason. +# +# Mutex default:logs + +# +# Listen: Allows you to bind Apache to specific IP addresses and/or +# ports, instead of the default. See also the +# directive. +# +# Change this to Listen on specific IP addresses as shown below to +# prevent Apache from glomming onto all bound IP addresses. +# +#Listen 12.34.56.78:80 +Listen 3100 + +# +# Dynamic Shared Object (DSO) Support +# +# To be able to use the functionality of a module which was built as a DSO you +# have to place corresponding `LoadModule' lines at this location so the +# directives contained in it are actually available _before_ they are used. +# Statically compiled modules (those listed by `httpd -l') do not need +# to be loaded here. +# +# Example: +# LoadModule foo_module modules/mod_foo.so +# +LoadModule mpm_event_module modules/mod_mpm_event.so +LoadModule authn_file_module modules/mod_authn_file.so +LoadModule authn_core_module modules/mod_authn_core.so +LoadModule authz_host_module modules/mod_authz_host.so +LoadModule authz_groupfile_module modules/mod_authz_groupfile.so +LoadModule authz_user_module modules/mod_authz_user.so +LoadModule authz_core_module modules/mod_authz_core.so +LoadModule access_compat_module modules/mod_access_compat.so +LoadModule auth_basic_module modules/mod_auth_basic.so +LoadModule reqtimeout_module modules/mod_reqtimeout.so +LoadModule include_module modules/mod_include.so +LoadModule filter_module modules/mod_filter.so +LoadModule substitute_module modules/mod_substitute.so +LoadModule mime_module modules/mod_mime.so +LoadModule log_config_module modules/mod_log_config.so +LoadModule env_module modules/mod_env.so +LoadModule headers_module modules/mod_headers.so +LoadModule setenvif_module modules/mod_setenvif.so +LoadModule version_module modules/mod_version.so +LoadModule proxy_module modules/mod_proxy.so +LoadModule proxy_http_module modules/mod_proxy_http.so +LoadModule ssl_module modules/mod_ssl.so +LoadModule unixd_module modules/mod_unixd.so +LoadModule status_module modules/mod_status.so +LoadModule autoindex_module modules/mod_autoindex.so + + #LoadModule cgid_module modules/mod_cgid.so + + + #LoadModule cgi_module modules/mod_cgi.so + +LoadModule dir_module modules/mod_dir.so +LoadModule alias_module modules/mod_alias.so +LoadModule rewrite_module modules/mod_rewrite.so + + +# +# If you wish httpd to run as a different user or group, you must run +# httpd as root initially and it will switch. +# +# User/Group: The name (or #number) of the user/group to run httpd as. +# It is usually good practice to create a dedicated user and group for +# running httpd, as with most system services. +# +User www-data +Group www-data + + + +ServerAdmin sujenshah@jpl.nasa.gov + + + AllowOverride none + Require all denied + + +DocumentRoot "/usr/local/apache2/htdocs" + + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs/2.4/mod/core.html#options + # for more information. + # + Options Indexes FollowSymLinks + + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # AllowOverride FileInfo AuthConfig Limit + # + AllowOverride None + + # + # Controls who can get stuff from this server. + # + Require all granted + + +# +# DirectoryIndex: sets the file that Apache will serve if a directory +# is requested. +# + + DirectoryIndex index.html + + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + +# +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog /proc/self/fd/2 + +# +# LogLevel: Control the number of messages logged to the error_log. +# Possible values include: debug, info, notice, warn, error, crit, +# alert, emerg. +# +LogLevel warn + + + # + # The following directives define some format nicknames for use with + # a CustomLog directive (see below). + # + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined + LogFormat "%h %l %u %t \"%r\" %>s %b" common + + + # You need to enable mod_logio.c to use %I and %O + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio + + + # + # The location and format of the access logfile (Common Logfile Format). + # If you do not define any access logfiles within a + # container, they will be logged here. Contrariwise, if you *do* + # define per- access logfiles, transactions will be + # logged therein and *not* in this file. + # + CustomLog /proc/self/fd/1 common + + # + # If you prefer a logfile with access, agent, and referer information + # (Combined Logfile Format) you can use the following directive. + # + #CustomLog "logs/access_log" combined + + + + # + # Redirect: Allows you to tell clients about documents that used to + # exist in your server's namespace, but do not anymore. The client + # will make a new request for the document at its new location. + # Example: + # Redirect permanent /foo http://www.example.com/bar + + # + # Alias: Maps web paths into filesystem paths and is used to + # access content that does not live under the DocumentRoot. + # Example: + # Alias /webpath /full/filesystem/path + # + # If you include a trailing / on /webpath then the server will + # require it to be present in the URL. You will also likely + # need to provide a section to allow access to + # the filesystem path. + + # + # ScriptAlias: This controls which directories contain server scripts. + # ScriptAliases are essentially the same as Aliases, except that + # documents in the target directory are treated as applications and + # run by the server when requested rather than as documents sent to the + # client. The same rules about trailing "/" apply to ScriptAlias + # directives as to Alias. + # + ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" + + + + + # + # ScriptSock: On threaded servers, designate the path to the UNIX + # socket used to communicate with the CGI daemon of mod_cgid. + # + #Scriptsock cgisock + + +# +# "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased +# CGI directory exists, if you have that configured. +# + + AllowOverride None + Options None + Require all granted + + + + # + # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied + # backend servers which have lingering "httpoxy" defects. + # 'Proxy' request header is undefined by the IETF, not listed by IANA + # + RequestHeader unset Proxy early + + + + # + # TypesConfig points to the file containing the list of mappings from + # filename extension to MIME-type. + # + TypesConfig conf/mime.types + + # + # AddType allows you to add to or override the MIME configuration + # file specified in TypesConfig for specific file types. + # + #AddType application/x-gzip .tgz + # + # AddEncoding allows you to have certain browsers uncompress + # information on the fly. Note: Not all browsers support this. + # + #AddEncoding x-compress .Z + #AddEncoding x-gzip .gz .tgz + # + # If the AddEncoding directives above are commented-out, then you + # probably should define those extensions to indicate media types: + # + AddType application/x-compress .Z + AddType application/x-gzip .gz .tgz + + # + # AddHandler allows you to map certain file extensions to "handlers": + # actions unrelated to filetype. These can be either built into the server + # or added with the Action directive (see below) + # + # To use CGI scripts outside of ScriptAliased directories: + # (You will also need to add "ExecCGI" to the "Options" directive.) + # + #AddHandler cgi-script .cgi + + # For type maps (negotiated resources): + #AddHandler type-map var + + # + # Filters allow you to process content before it is sent to the client. + # + # To parse .shtml files for server-side includes (SSI): + # (You will also need to add "Includes" to the "Options" directive.) + # + #AddType text/html .shtml + #AddOutputFilter INCLUDES .shtml + + +# Configure mod_proxy_html to understand HTML4/XHTML1 + +Include conf/extra/proxy-html.conf + + +# Secure (SSL/TLS) connections +#Include conf/extra/httpd-ssl.conf +# +# Note: The following must must be present to support +# starting without SSL on platforms with no /dev/random equivalent +# but a statically compiled-in mod_ssl. +# + +SSLRandomSeed startup builtin +SSLRandomSeed connect builtin + + +PassEnv PREVIEW_URL + + + ProxyRequests Off + RewriteEngine On + SSLProxyEngine On + SSLProxyCheckPeerCN Off + Options Includes + + + Order deny,allow + Allow from all + + + # #TODO: Replace mozart-ip with appropriate IP address + ProxyPass / https://mozart-ip/ upgrade=websocket + ProxyPassReverse / https://mozart-ip/ + + AddOutputFilterByType SUBSTITUTE;INCLUDES text/html + # Fixes refresh at top level page + Substitute 's||/hysds_ui/figaro/" />|ni' + Substitute 's|="/hysds_ui|="/hysds_ui|ni' + Substitute 's|="//mozart|="/mozart|ni' + Substitute 's|="/mozart|="/mozart|ni' + Substitute 's|="/verdi|="/verdi|ni' + Substitute 's|="//grq|="/grq|ni' + Substitute 's|="/grq|="/grq|ni' + Substitute 's|="/icons|="/icons|ni' + + AddOutputFilterByType SUBSTITUTE;INCLUDES application/javascript + Substitute 's|ROOT_PATH="/hysds_ui/"|ROOT_PATH="/hysds_ui/"|ni' + Substitute 's|MOZART_BASE_URL=""|MOZART_BASE_URL=""|ni' + Substitute 's|METRICS_URL="|METRICS_URL="|ni' + # Fix API links, needs trailing slash + Substitute 's|v0.1"|v0.1/"|ni' + Substitute 's|v0.2"|v0.2/"|ni' + + From 1f06847c9e9e375abdc6c9e4d8524b8fcf0180f2 Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Wed, 27 Sep 2023 13:26:26 -0700 Subject: [PATCH 05/15] 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 --- base_images/isce2/docker/Dockerfile | 9 +++++---- base_images/isce3/docker/Dockerfile | 7 ++++--- base_images/pangeo/docker/Dockerfile | 7 +++++-- base_images/r/docker/Dockerfile | 7 ++++--- base_images/rgedi/docker/Dockerfile | 10 +++++++--- base_images/vanilla/docker/Dockerfile | 18 ++++++++++++------ jupyterlab3/docker/Dockerfile | 4 ++-- 7 files changed, 39 insertions(+), 23 deletions(-) diff --git a/base_images/isce2/docker/Dockerfile b/base_images/isce2/docker/Dockerfile index 135aa3e6..d2e09ddd 100644 --- a/base_images/isce2/docker/Dockerfile +++ b/base_images/isce2/docker/Dockerfile @@ -30,13 +30,14 @@ RUN mkdir /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd -RUN conda install -y -c conda-forge mamba=1.3.1 -RUN pip install pyOpenSSL==23.2.0 +RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ + conda install -y -n base conda-libmamba-solver && \ + conda config --set solver libmamba # need to uninstall jupyter_server_terminals as it conflicts with Jupyterlab 3.4.x. Doesn't seem to break anything # but can get rid of if/when we upgrade jlab -RUN mamba install -y -c conda-forge -c plant plant=0.1.89dev isce2=2.6.2 matplotlib=3.5.1 Cython=0.29.28 \ - numba=0.55.1 pygeos=0.14.0 pyproj=3.4.1 rasterio=1.3.6 && \ +RUN conda install -y --solver=libmamba -c conda-forge -c plant plant=0.1.89dev isce2=2.6.2 matplotlib=3.6.2 Cython=0.29.33 \ + numba=0.56.4 pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 && \ pip uninstall -y jupyter_server_terminals && \ find /opt/conda/ -follow -type f -name '*.a' -delete && \ find /opt/conda/ -follow -type f -name '*.js.map' -delete && \ diff --git a/base_images/isce3/docker/Dockerfile b/base_images/isce3/docker/Dockerfile index 47be8c59..257df4e0 100644 --- a/base_images/isce3/docker/Dockerfile +++ b/base_images/isce3/docker/Dockerfile @@ -16,10 +16,11 @@ RUN mkdir /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd -RUN conda install -y -c conda-forge mamba=1.4.2 -RUN pip install pyOpenSSL==23.2.0 +RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ + conda install -y -n base conda-libmamba-solver && \ + conda config --set solver libmamba -RUN mamba install -y -c conda-forge isce3=0.12.0 xarray=2023.4.2 \ +RUN conda install -y --solver=libmamba -c conda-forge isce3=0.12.0 xarray=2023.4.2 \ hvplot=0.8.3 fsspec=2023.5.0 scikit-learn=1.2.2 && \ find /opt/conda/ -follow -type f -name '*.a' -delete && \ find /opt/conda/ -follow -type f -name '*.js.map' -delete && \ diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index 80d25d96..a2c99462 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -13,8 +13,11 @@ RUN mkdir /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd -RUN conda install -c conda-forge mamba && \ - mamba install -c conda-forge -y gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ +RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ + conda install -y -n base conda-libmamba-solver && \ + conda config --set solver libmamba + +RUN conda install -y --solver=libmamba -c conda-forge gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 \ && find /opt/conda/ -follow -type f -name '*.a' -delete \ && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ diff --git a/base_images/r/docker/Dockerfile b/base_images/r/docker/Dockerfile index 16ff83ff..7a71ecbf 100644 --- a/base_images/r/docker/Dockerfile +++ b/base_images/r/docker/Dockerfile @@ -16,10 +16,11 @@ RUN mkdir /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd -RUN conda install -y -c conda-forge mamba=1.3.1 -RUN pip install pyOpenSSL==23.2.0 +RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ + conda install -y -n base conda-libmamba-solver && \ + conda config --set solver libmamba -RUN mamba install -y -c conda-forge r==4.2 r-rgdal==1.5_32 r-sf==1.0_7 r-irkernel==1.3.2 r-gridExtra==2.3 \ +RUN conda install -y --solver=libmamba -c conda-forge r==4.2 r-rgdal==1.5_32 r-sf==1.0_7 r-irkernel==1.3.2 r-gridExtra==2.3 \ r-tidyverse==2.0.0 r-randomForest==4.7_1.1 r-raster==3.6_20 r-data.table==1.14.8 r-rlist==0.4.6.2 \ r-gdalutils==2.0.3.2 r-stringr==1.5.0 && \ find /opt/conda/ -follow -type f -name '*.a' -delete && \ diff --git a/base_images/rgedi/docker/Dockerfile b/base_images/rgedi/docker/Dockerfile index 16aabe45..3ebb25ba 100644 --- a/base_images/rgedi/docker/Dockerfile +++ b/base_images/rgedi/docker/Dockerfile @@ -11,9 +11,13 @@ WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd && echo "source activate r-with-gdal" > ~/.bashrc RUN apt-get update && apt-get install -y libxt-dev && apt-get clean -RUN conda install -y -c conda-forge mamba && \ - mamba install -y -c conda-forge nb_conda_kernels -RUN mamba create --name r-with-gdal -c conda-forge -c r -c csdms-stack gdal r-rgdal r-sf r-irkernel r-gridExtra r-tidyverse \ +RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ + conda install -y -n base conda-libmamba-solver && \ + conda config --set solver libmamba + +RUN conda install -y --solver=libmamba -c conda-forge nb_conda_kernels + +RUN conda create --name r-with-gdal --solver=libmamba -c conda-forge -c r -c csdms-stack gdal r-rgdal r-sf r-irkernel r-gridExtra r-tidyverse \ r-randomForest r-raster r-data.table r-rlist r-gdalutils r-stringr r-devtools sysroot_linux-64=2.17 gcc r-lwgeom szip --yes && \ /opt/conda/bin/conda clean -afy RUN mkdir -p ~/.R/ && echo "LDFLAGS=-lproj" >> ~/.R/Makevars && \ diff --git a/base_images/vanilla/docker/Dockerfile b/base_images/vanilla/docker/Dockerfile index 9daabacc..2e0fe5d6 100644 --- a/base_images/vanilla/docker/Dockerfile +++ b/base_images/vanilla/docker/Dockerfile @@ -1,4 +1,7 @@ FROM continuumio/miniconda3:22.11.1 +ENV LANG en_US.UTF-8 +ENV TZ US/Pacific +ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' @@ -10,12 +13,15 @@ RUN mkdir /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd -RUN conda install -c conda-forge mamba && \ - mamba install -c conda-forge -y gdal=3.4.1 matplotlib=3.5.1 Cython=0.29.28 h5py=3.6.0 numba=0.55.1 \ - pygeos=0.12.0 pyproj=3.3.0 rasterio=1.2.10 scipy=1.8.0 && \ - 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 install -y -c conda-forge pyOpenSSL=23.2.0 && \ + conda install -y -n base conda-libmamba-solver && \ + conda config --set solver libmamba + +RUN conda install -y --solver=libmamba -c conda-forge gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ + pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 \ + && 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 ARG IMAGE_REF ENV DOCKERIMAGE_PATH=${IMAGE_REF} diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 176b28c6..04fc1c97 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -23,10 +23,10 @@ RUN apt-get clean && apt-get update && \ RUN echo "Checking if environment.yml exists for ${BASE_IMAGE_TYPE}" \ ; if [ -f "/${BASE_IMAGE_TYPE}/environment.yml" ]; then \ echo "Installing packages from '/${BASE_IMAGE_TYPE}/environment.yml'" \ - ; mamba env update --name base --file "/${BASE_IMAGE_TYPE}/environment.yml" \ + ; conda env update --name base --file "/${BASE_IMAGE_TYPE}/environment.yml" --solver libmamba \ ; else \ echo "Installing packages from '/shared/environment.yml'" \ - ; mamba env update --name base --file "/shared/environment.yml" \ + ; conda env update --name base --file "/shared/environment.yml" --solver libmamba \ ; fi RUN npm install typescript -g From a0c6ac596d75c14c20f13c4e8e87e5d1f9790249 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Fri, 29 Sep 2023 11:35:14 -0700 Subject: [PATCH 06/15] 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 --- jupyterlab3/entrypoint.sh | 6 ++++-- jupyterlab3/pangeo/environment.yml | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/jupyterlab3/entrypoint.sh b/jupyterlab3/entrypoint.sh index 83e6368d..fa32971c 100644 --- a/jupyterlab3/entrypoint.sh +++ b/jupyterlab3/entrypoint.sh @@ -155,11 +155,13 @@ MEMORY=$(get_max_memory "$NAMESPACE") # TBD maap-py install +source /opt/conda/bin/activate base +export SHELL=/bin/bash VERSION=$(jupyter lab --version) if [[ $VERSION > '2' ]] && [[ $VERSION < '3' ]]; then - SHELL=/bin/bash jupyter lab --ip=0.0.0.0 --port=3100 --allow-root --NotebookApp.token='' --NotebookApp.base_url=$PREVIEW_URL --no-browser --debug + 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 - SHELL=/bin/bash 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 + 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." fi \ No newline at end of file diff --git a/jupyterlab3/pangeo/environment.yml b/jupyterlab3/pangeo/environment.yml index 0c3753db..46e3c5be 100644 --- a/jupyterlab3/pangeo/environment.yml +++ b/jupyterlab3/pangeo/environment.yml @@ -18,7 +18,14 @@ dependencies: - shapely=2.0.1 - xmltodict=0.13.0 - xarray=2023.5.0 + - pip - pip: - rio_tiler==4.1.11 - pystac_client==0.6.1 - - git+https://github.com/MAAP-Project/stac_ipyleaflet.git@0.2.0#egg-info=stac_ipyleaflet \ No newline at end of file + - git+https://github.com/MAAP-Project/stac_ipyleaflet.git@0.3.5#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/' From 6ffbf7656065275980c4249c742b7bd90a934720 Mon Sep 17 00:00:00 2001 From: bsatoriu Date: Fri, 29 Sep 2023 16:03:20 -0700 Subject: [PATCH 07/15] Remove hysds base_image [skip-ci] (#68) --- base_images/hysds/docker/Dockerfile | 9 - base_images/hysds/docker/entrypoint.sh | 66 ---- base_images/hysds/docker/proxy-httpd.conf | 372 ---------------------- 3 files changed, 447 deletions(-) delete mode 100644 base_images/hysds/docker/Dockerfile delete mode 100644 base_images/hysds/docker/entrypoint.sh delete mode 100644 base_images/hysds/docker/proxy-httpd.conf diff --git a/base_images/hysds/docker/Dockerfile b/base_images/hysds/docker/Dockerfile deleted file mode 100644 index e8f2178e..00000000 --- a/base_images/hysds/docker/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -# docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf - -FROM httpd:2.4 - -RUN apt-get update && apt-get install -y python3 -COPY ./proxy-httpd.conf /usr/local/apache2/conf/httpd.conf -COPY ./entrypoint.sh /entrypoint.sh - -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] diff --git a/base_images/hysds/docker/entrypoint.sh b/base_images/hysds/docker/entrypoint.sh deleted file mode 100644 index 24ef19dc..00000000 --- a/base_images/hysds/docker/entrypoint.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash - -# A more robust method of constructing the workspace url prefix -get_workspace_url_prefix() { - python3 - <-che" - if test -z "$PREVIEW_URL" - then - PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_NAMESPACE-$CHE_WORKSPACE_ID") # Che 7 UAT configuration fallback where the default namespace is "-", this will be deprecated - fi - if test -z "$PREVIEW_URL" - then - PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_ID") # Che 6 configuration fallback where the default namespace is the workspace id, this will be deprecated - fi - if ! test -z "$PREVIEW_URL" # exit loop when it has a preview_url - then - break - fi - date # print timestamp in the logs if it doesn't get a URL - sleep 1 -done -# end more robust method - -PREVIEW_URL="$PREVIEW_URL" /usr/local/bin/httpd-foreground diff --git a/base_images/hysds/docker/proxy-httpd.conf b/base_images/hysds/docker/proxy-httpd.conf deleted file mode 100644 index 435d7133..00000000 --- a/base_images/hysds/docker/proxy-httpd.conf +++ /dev/null @@ -1,372 +0,0 @@ -# -# This is the main Apache HTTP server configuration file. It contains the -# configuration directives that give the server its instructions. -# See for detailed information. -# In particular, see -# -# for a discussion of each configuration directive. -# -# Do NOT simply read the instructions in here without understanding -# what they do. They're here only as hints or reminders. If you are unsure -# consult the online docs. You have been warned. -# -# Configuration and logfile names: If the filenames you specify for many -# of the server's control files begin with "/" (or "drive:/" for Win32), the -# server will use that explicit path. If the filenames do *not* begin -# with "/", the value of ServerRoot is prepended -- so "logs/access_log" -# with ServerRoot set to "/usr/local/apache2" will be interpreted by the -# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" -# will be interpreted as '/logs/access_log'. - -# -# ServerRoot: The top of the directory tree under which the server's -# configuration, error, and log files are kept. -# -# Do not add a slash at the end of the directory path. If you point -# ServerRoot at a non-local disk, be sure to specify a local disk on the -# Mutex directive, if file-based mutexes are used. If you wish to share the -# same ServerRoot for multiple httpd daemons, you will need to change at -# least PidFile. -# -ServerRoot "/usr/local/apache2" - -# -# Mutex: Allows you to set the mutex mechanism and mutex file directory -# for individual mutexes, or change the global defaults -# -# Uncomment and change the directory if mutexes are file-based and the default -# mutex file directory is not on a local disk or is not appropriate for some -# other reason. -# -# Mutex default:logs - -# -# Listen: Allows you to bind Apache to specific IP addresses and/or -# ports, instead of the default. See also the -# directive. -# -# Change this to Listen on specific IP addresses as shown below to -# prevent Apache from glomming onto all bound IP addresses. -# -#Listen 12.34.56.78:80 -Listen 3100 - -# -# Dynamic Shared Object (DSO) Support -# -# To be able to use the functionality of a module which was built as a DSO you -# have to place corresponding `LoadModule' lines at this location so the -# directives contained in it are actually available _before_ they are used. -# Statically compiled modules (those listed by `httpd -l') do not need -# to be loaded here. -# -# Example: -# LoadModule foo_module modules/mod_foo.so -# -LoadModule mpm_event_module modules/mod_mpm_event.so -LoadModule authn_file_module modules/mod_authn_file.so -LoadModule authn_core_module modules/mod_authn_core.so -LoadModule authz_host_module modules/mod_authz_host.so -LoadModule authz_groupfile_module modules/mod_authz_groupfile.so -LoadModule authz_user_module modules/mod_authz_user.so -LoadModule authz_core_module modules/mod_authz_core.so -LoadModule access_compat_module modules/mod_access_compat.so -LoadModule auth_basic_module modules/mod_auth_basic.so -LoadModule reqtimeout_module modules/mod_reqtimeout.so -LoadModule include_module modules/mod_include.so -LoadModule filter_module modules/mod_filter.so -LoadModule substitute_module modules/mod_substitute.so -LoadModule mime_module modules/mod_mime.so -LoadModule log_config_module modules/mod_log_config.so -LoadModule env_module modules/mod_env.so -LoadModule headers_module modules/mod_headers.so -LoadModule setenvif_module modules/mod_setenvif.so -LoadModule version_module modules/mod_version.so -LoadModule proxy_module modules/mod_proxy.so -LoadModule proxy_http_module modules/mod_proxy_http.so -LoadModule ssl_module modules/mod_ssl.so -LoadModule unixd_module modules/mod_unixd.so -LoadModule status_module modules/mod_status.so -LoadModule autoindex_module modules/mod_autoindex.so - - #LoadModule cgid_module modules/mod_cgid.so - - - #LoadModule cgi_module modules/mod_cgi.so - -LoadModule dir_module modules/mod_dir.so -LoadModule alias_module modules/mod_alias.so -LoadModule rewrite_module modules/mod_rewrite.so - - -# -# If you wish httpd to run as a different user or group, you must run -# httpd as root initially and it will switch. -# -# User/Group: The name (or #number) of the user/group to run httpd as. -# It is usually good practice to create a dedicated user and group for -# running httpd, as with most system services. -# -User www-data -Group www-data - - - -ServerAdmin sujenshah@jpl.nasa.gov - - - AllowOverride none - Require all denied - - -DocumentRoot "/usr/local/apache2/htdocs" - - # - # Possible values for the Options directive are "None", "All", - # or any combination of: - # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews - # - # Note that "MultiViews" must be named *explicitly* --- "Options All" - # doesn't give it to you. - # - # The Options directive is both complicated and important. Please see - # http://httpd.apache.org/docs/2.4/mod/core.html#options - # for more information. - # - Options Indexes FollowSymLinks - - # - # AllowOverride controls what directives may be placed in .htaccess files. - # It can be "All", "None", or any combination of the keywords: - # AllowOverride FileInfo AuthConfig Limit - # - AllowOverride None - - # - # Controls who can get stuff from this server. - # - Require all granted - - -# -# DirectoryIndex: sets the file that Apache will serve if a directory -# is requested. -# - - DirectoryIndex index.html - - -# -# The following lines prevent .htaccess and .htpasswd files from being -# viewed by Web clients. -# - - Require all denied - - -# -# ErrorLog: The location of the error log file. -# If you do not specify an ErrorLog directive within a -# container, error messages relating to that virtual host will be -# logged here. If you *do* define an error logfile for a -# container, that host's errors will be logged there and not here. -# -ErrorLog /proc/self/fd/2 - -# -# LogLevel: Control the number of messages logged to the error_log. -# Possible values include: debug, info, notice, warn, error, crit, -# alert, emerg. -# -LogLevel warn - - - # - # The following directives define some format nicknames for use with - # a CustomLog directive (see below). - # - LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined - LogFormat "%h %l %u %t \"%r\" %>s %b" common - - - # You need to enable mod_logio.c to use %I and %O - LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio - - - # - # The location and format of the access logfile (Common Logfile Format). - # If you do not define any access logfiles within a - # container, they will be logged here. Contrariwise, if you *do* - # define per- access logfiles, transactions will be - # logged therein and *not* in this file. - # - CustomLog /proc/self/fd/1 common - - # - # If you prefer a logfile with access, agent, and referer information - # (Combined Logfile Format) you can use the following directive. - # - #CustomLog "logs/access_log" combined - - - - # - # Redirect: Allows you to tell clients about documents that used to - # exist in your server's namespace, but do not anymore. The client - # will make a new request for the document at its new location. - # Example: - # Redirect permanent /foo http://www.example.com/bar - - # - # Alias: Maps web paths into filesystem paths and is used to - # access content that does not live under the DocumentRoot. - # Example: - # Alias /webpath /full/filesystem/path - # - # If you include a trailing / on /webpath then the server will - # require it to be present in the URL. You will also likely - # need to provide a section to allow access to - # the filesystem path. - - # - # ScriptAlias: This controls which directories contain server scripts. - # ScriptAliases are essentially the same as Aliases, except that - # documents in the target directory are treated as applications and - # run by the server when requested rather than as documents sent to the - # client. The same rules about trailing "/" apply to ScriptAlias - # directives as to Alias. - # - ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" - - - - - # - # ScriptSock: On threaded servers, designate the path to the UNIX - # socket used to communicate with the CGI daemon of mod_cgid. - # - #Scriptsock cgisock - - -# -# "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased -# CGI directory exists, if you have that configured. -# - - AllowOverride None - Options None - Require all granted - - - - # - # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied - # backend servers which have lingering "httpoxy" defects. - # 'Proxy' request header is undefined by the IETF, not listed by IANA - # - RequestHeader unset Proxy early - - - - # - # TypesConfig points to the file containing the list of mappings from - # filename extension to MIME-type. - # - TypesConfig conf/mime.types - - # - # AddType allows you to add to or override the MIME configuration - # file specified in TypesConfig for specific file types. - # - #AddType application/x-gzip .tgz - # - # AddEncoding allows you to have certain browsers uncompress - # information on the fly. Note: Not all browsers support this. - # - #AddEncoding x-compress .Z - #AddEncoding x-gzip .gz .tgz - # - # If the AddEncoding directives above are commented-out, then you - # probably should define those extensions to indicate media types: - # - AddType application/x-compress .Z - AddType application/x-gzip .gz .tgz - - # - # AddHandler allows you to map certain file extensions to "handlers": - # actions unrelated to filetype. These can be either built into the server - # or added with the Action directive (see below) - # - # To use CGI scripts outside of ScriptAliased directories: - # (You will also need to add "ExecCGI" to the "Options" directive.) - # - #AddHandler cgi-script .cgi - - # For type maps (negotiated resources): - #AddHandler type-map var - - # - # Filters allow you to process content before it is sent to the client. - # - # To parse .shtml files for server-side includes (SSI): - # (You will also need to add "Includes" to the "Options" directive.) - # - #AddType text/html .shtml - #AddOutputFilter INCLUDES .shtml - - -# Configure mod_proxy_html to understand HTML4/XHTML1 - -Include conf/extra/proxy-html.conf - - -# Secure (SSL/TLS) connections -#Include conf/extra/httpd-ssl.conf -# -# Note: The following must must be present to support -# starting without SSL on platforms with no /dev/random equivalent -# but a statically compiled-in mod_ssl. -# - -SSLRandomSeed startup builtin -SSLRandomSeed connect builtin - - -PassEnv PREVIEW_URL - - - ProxyRequests Off - RewriteEngine On - SSLProxyEngine On - SSLProxyCheckPeerCN Off - Options Includes - - - Order deny,allow - Allow from all - - - # #TODO: Replace mozart-ip with appropriate IP address - ProxyPass / https://mozart-ip/ upgrade=websocket - ProxyPassReverse / https://mozart-ip/ - - AddOutputFilterByType SUBSTITUTE;INCLUDES text/html - # Fixes refresh at top level page - Substitute 's||/hysds_ui/figaro/" />|ni' - Substitute 's|="/hysds_ui|="/hysds_ui|ni' - Substitute 's|="//mozart|="/mozart|ni' - Substitute 's|="/mozart|="/mozart|ni' - Substitute 's|="/verdi|="/verdi|ni' - Substitute 's|="//grq|="/grq|ni' - Substitute 's|="/grq|="/grq|ni' - Substitute 's|="/icons|="/icons|ni' - - AddOutputFilterByType SUBSTITUTE;INCLUDES application/javascript - Substitute 's|ROOT_PATH="/hysds_ui/"|ROOT_PATH="/hysds_ui/"|ni' - Substitute 's|MOZART_BASE_URL=""|MOZART_BASE_URL=""|ni' - Substitute 's|METRICS_URL="|METRICS_URL="|ni' - # Fix API links, needs trailing slash - Substitute 's|v0.1"|v0.1/"|ni' - Substitute 's|v0.2"|v0.2/"|ni' - - From f8d7e6430e6f3ba36fa05f364dfc338c002287f0 Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Mon, 9 Oct 2023 08:50:03 -0700 Subject: [PATCH 08/15] 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 --- base_images/isce2/docker/Dockerfile | 2 +- base_images/isce3/docker/Dockerfile | 2 +- base_images/pangeo/docker/Dockerfile | 2 +- base_images/r/docker/Dockerfile | 2 +- base_images/rgedi/docker/Dockerfile | 2 +- base_images/vanilla/docker/Dockerfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/base_images/isce2/docker/Dockerfile b/base_images/isce2/docker/Dockerfile index d2e09ddd..c5b29682 100644 --- a/base_images/isce2/docker/Dockerfile +++ b/base_images/isce2/docker/Dockerfile @@ -31,7 +31,7 @@ WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ - conda install -y -n base conda-libmamba-solver && \ + conda install -y -n base conda-libmamba-solver=23.7.0 && \ conda config --set solver libmamba # need to uninstall jupyter_server_terminals as it conflicts with Jupyterlab 3.4.x. Doesn't seem to break anything diff --git a/base_images/isce3/docker/Dockerfile b/base_images/isce3/docker/Dockerfile index 257df4e0..d624e711 100644 --- a/base_images/isce3/docker/Dockerfile +++ b/base_images/isce3/docker/Dockerfile @@ -17,7 +17,7 @@ WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ - conda install -y -n base conda-libmamba-solver && \ + conda install -y -n base conda-libmamba-solver=23.7.0 && \ conda config --set solver libmamba RUN conda install -y --solver=libmamba -c conda-forge isce3=0.12.0 xarray=2023.4.2 \ diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index a2c99462..0c3f8712 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -14,7 +14,7 @@ WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ - conda install -y -n base conda-libmamba-solver && \ + conda install -y -n base conda-libmamba-solver=23.7.0 && \ conda config --set solver libmamba RUN conda install -y --solver=libmamba -c conda-forge gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ diff --git a/base_images/r/docker/Dockerfile b/base_images/r/docker/Dockerfile index 7a71ecbf..76cbacfa 100644 --- a/base_images/r/docker/Dockerfile +++ b/base_images/r/docker/Dockerfile @@ -17,7 +17,7 @@ WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ - conda install -y -n base conda-libmamba-solver && \ + conda install -y -n base conda-libmamba-solver=23.7.0 && \ conda config --set solver libmamba RUN conda install -y --solver=libmamba -c conda-forge r==4.2 r-rgdal==1.5_32 r-sf==1.0_7 r-irkernel==1.3.2 r-gridExtra==2.3 \ diff --git a/base_images/rgedi/docker/Dockerfile b/base_images/rgedi/docker/Dockerfile index 3ebb25ba..9e19e5a4 100644 --- a/base_images/rgedi/docker/Dockerfile +++ b/base_images/rgedi/docker/Dockerfile @@ -12,7 +12,7 @@ RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd && echo "source activate r-wit RUN apt-get update && apt-get install -y libxt-dev && apt-get clean RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ - conda install -y -n base conda-libmamba-solver && \ + conda install -y -n base conda-libmamba-solver=23.7.0 && \ conda config --set solver libmamba RUN conda install -y --solver=libmamba -c conda-forge nb_conda_kernels diff --git a/base_images/vanilla/docker/Dockerfile b/base_images/vanilla/docker/Dockerfile index 2e0fe5d6..75d69eb5 100644 --- a/base_images/vanilla/docker/Dockerfile +++ b/base_images/vanilla/docker/Dockerfile @@ -14,7 +14,7 @@ WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd RUN conda install -y -c conda-forge pyOpenSSL=23.2.0 && \ - conda install -y -n base conda-libmamba-solver && \ + conda install -y -n base conda-libmamba-solver=23.7.0 && \ conda config --set solver libmamba RUN conda install -y --solver=libmamba -c conda-forge gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ From 3ba1e9c345d6d93daa6aa2687261072fecfb8ce1 Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:14:03 -0700 Subject: [PATCH 09/15] Bugs/presigned url (#70) * changed dit url to test * changed dit back and changed ops to be maap-ops-workspace instead of dataset --- jupyterlab3/environments.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/environments.json b/jupyterlab3/environments.json index 5ba6e4db..f8d5190a 100644 --- a/jupyterlab3/environments.json +++ b/jupyterlab3/environments.json @@ -37,7 +37,7 @@ "auth_server": "auth.maap-project.org", "mas_server": "mas.maap-project.org", "edsc_server": "ade.maap-project.org:30052", - "workspace_bucket": "maap-ops-dataset", + "workspace_bucket": "maap-ops-workspace", "default_host": false } ] From a17b41c40ce7aae30afa32236612c7464044c382 Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:12:24 -0700 Subject: [PATCH 10/15] Bugs/git tour link (#71) * manual build for change to maap help * updated npm version of maap help --- jupyterlab3/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 04fc1c97..c539ecf7 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -62,7 +62,7 @@ RUN jupyter labextension install @maap-jupyterlab/umf-jupyter-extension@1.0.0 -- RUN jupyter labextension install @maap-jupyterlab/maap-libs-jupyter-extension@1.0.2 --no-build RUN jupyter labextension install @maap-jupyterlab/edsc-jupyter-extension@1.0.4 --no-build RUN jupyter labextension install @maap-jupyterlab/user-workspace-management-jupyter-extension@0.0.5 --no-build -RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.0 --no-build +RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.1 --no-build RUN jupyter labextension install @maap-jupyterlab/che-sidebar-visibility-jupyter-extension@1.0.1 --no-build RUN jupyter lab build && \ From 3606ad86e41c4702ba4f4fce5bf2f8ca7cd4d782 Mon Sep 17 00:00:00 2001 From: Marjorie Lucas <47004511+marjo-luc@users.noreply.github.com> Date: Wed, 25 Oct 2023 10:28:59 -0700 Subject: [PATCH 11/15] updated custom ext versions (#72) --- jupyterlab3/docker/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index c539ecf7..b439e738 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -51,18 +51,18 @@ RUN jupyter labextension disable @jupyterlab/apputils-extension:announcements ############################### # Custom Jupyter Extensions ############################### -RUN jupyter labextension install @maap-jupyterlab/dps-jupyter-extension@0.4.6 --no-build +RUN jupyter labextension install @maap-jupyterlab/dps-jupyter-extension@0.5.1 --no-build # PyPi package prepended with 'maap' so it more easily discoverable -RUN pip install maap-jupyter-server-extension==1.1.1 +RUN pip install maap-jupyter-server-extension==1.2.0 RUN jupyter server extension enable jupyter_server_extension -RUN jupyter labextension install @maap-jupyterlab/algorithms_jupyter_extension@0.1.1 --no-build +RUN jupyter labextension install @maap-jupyterlab/algorithms_jupyter_extension@0.2.0 --no-build RUN jupyter labextension install @maap-jupyterlab/umf-jupyter-extension@1.0.0 --no-build RUN jupyter labextension install @maap-jupyterlab/maap-libs-jupyter-extension@1.0.2 --no-build RUN jupyter labextension install @maap-jupyterlab/edsc-jupyter-extension@1.0.4 --no-build RUN jupyter labextension install @maap-jupyterlab/user-workspace-management-jupyter-extension@0.0.5 --no-build -RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.1 --no-build +RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.0 --no-build RUN jupyter labextension install @maap-jupyterlab/che-sidebar-visibility-jupyter-extension@1.0.1 --no-build RUN jupyter lab build && \ From 76f252c47b3686bfdd3737108a910b8bbcd4110e Mon Sep 17 00:00:00 2001 From: Grace Llewellyn <114033465+grallewellyn@users.noreply.github.com> Date: Wed, 25 Oct 2023 21:16:10 -0700 Subject: [PATCH 12/15] Feature/update maap py (#73) upgraded all maap py versions to 3.1.2 --- base_images/isce2/docker/Dockerfile | 2 +- base_images/isce3/docker/Dockerfile | 2 +- base_images/pangeo/docker/Dockerfile | 2 +- base_images/r/docker/Dockerfile | 2 +- base_images/rgedi/docker/Dockerfile | 2 +- base_images/vanilla/docker/Dockerfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/base_images/isce2/docker/Dockerfile b/base_images/isce2/docker/Dockerfile index c5b29682..b5f9e75f 100644 --- a/base_images/isce2/docker/Dockerfile +++ b/base_images/isce2/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.0.1 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/isce3/docker/Dockerfile b/base_images/isce3/docker/Dockerfile index d624e711..fcfc4b62 100644 --- a/base_images/isce3/docker/Dockerfile +++ b/base_images/isce3/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.0.1 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index 0c3f8712..b2ed2b0e 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.0.1 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/r/docker/Dockerfile b/base_images/r/docker/Dockerfile index 76cbacfa..c2cc9382 100644 --- a/base_images/r/docker/Dockerfile +++ b/base_images/r/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.0.1 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/rgedi/docker/Dockerfile b/base_images/rgedi/docker/Dockerfile index 9e19e5a4..03518530 100644 --- a/base_images/rgedi/docker/Dockerfile +++ b/base_images/rgedi/docker/Dockerfile @@ -2,7 +2,7 @@ FROM continuumio/miniconda3:4.12.0 # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.0.1 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/vanilla/docker/Dockerfile b/base_images/vanilla/docker/Dockerfile index 75d69eb5..873e4995 100644 --- a/base_images/vanilla/docker/Dockerfile +++ b/base_images/vanilla/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.0.1 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . From 4b4fc3f40409eef6ee95d80a7762aafe576149d1 Mon Sep 17 00:00:00 2001 From: Marjorie Lucas <47004511+marjo-luc@users.noreply.github.com> Date: Fri, 27 Oct 2023 18:55:45 -0700 Subject: [PATCH 13/15] bumped jupyter server extension (#74) * update server ext * bumped server ext --- jupyterlab3/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index b439e738..29753e7b 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -54,7 +54,7 @@ RUN jupyter labextension disable @jupyterlab/apputils-extension:announcements RUN jupyter labextension install @maap-jupyterlab/dps-jupyter-extension@0.5.1 --no-build # PyPi package prepended with 'maap' so it more easily discoverable -RUN pip install maap-jupyter-server-extension==1.2.0 +RUN pip install maap-jupyter-server-extension==1.2.2 RUN jupyter server extension enable jupyter_server_extension RUN jupyter labextension install @maap-jupyterlab/algorithms_jupyter_extension@0.2.0 --no-build From 25cced2c9f05184297555b8548add8409ae4e47e Mon Sep 17 00:00:00 2001 From: bsatoriu Date: Fri, 27 Oct 2023 19:08:34 -0700 Subject: [PATCH 14/15] Bump maap-py to v3.1.3 (#75) --- base_images/isce2/docker/Dockerfile | 2 +- base_images/isce3/docker/Dockerfile | 2 +- base_images/pangeo/docker/Dockerfile | 2 +- base_images/r/docker/Dockerfile | 2 +- base_images/rgedi/docker/Dockerfile | 2 +- base_images/vanilla/docker/Dockerfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/base_images/isce2/docker/Dockerfile b/base_images/isce2/docker/Dockerfile index b5f9e75f..7f345dbe 100644 --- a/base_images/isce2/docker/Dockerfile +++ b/base_images/isce2/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.3 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/isce3/docker/Dockerfile b/base_images/isce3/docker/Dockerfile index fcfc4b62..0d6e7f49 100644 --- a/base_images/isce3/docker/Dockerfile +++ b/base_images/isce3/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.3 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index b2ed2b0e..2e49605d 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.3 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/r/docker/Dockerfile b/base_images/r/docker/Dockerfile index c2cc9382..cd9f645b 100644 --- a/base_images/r/docker/Dockerfile +++ b/base_images/r/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.3 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/rgedi/docker/Dockerfile b/base_images/rgedi/docker/Dockerfile index 03518530..6725ec7a 100644 --- a/base_images/rgedi/docker/Dockerfile +++ b/base_images/rgedi/docker/Dockerfile @@ -2,7 +2,7 @@ FROM continuumio/miniconda3:4.12.0 # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.3 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . diff --git a/base_images/vanilla/docker/Dockerfile b/base_images/vanilla/docker/Dockerfile index 873e4995..47a8f194 100644 --- a/base_images/vanilla/docker/Dockerfile +++ b/base_images/vanilla/docker/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' -RUN git clone --single-branch --branch v3.1.2 https://github.com/MAAP-Project/maap-py.git \ +RUN git clone --single-branch --branch v3.1.3 https://github.com/MAAP-Project/maap-py.git \ && cd maap-py \ && pip install -e . From 72140d99789327a74595da99fe0b9dbbbbf4a535 Mon Sep 17 00:00:00 2001 From: Marjorie Lucas <47004511+marjo-luc@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:19:48 -0700 Subject: [PATCH 15/15] Update Dockerfile --- jupyterlab3/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 29753e7b..72b6782a 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -62,7 +62,7 @@ RUN jupyter labextension install @maap-jupyterlab/umf-jupyter-extension@1.0.0 -- RUN jupyter labextension install @maap-jupyterlab/maap-libs-jupyter-extension@1.0.2 --no-build RUN jupyter labextension install @maap-jupyterlab/edsc-jupyter-extension@1.0.4 --no-build RUN jupyter labextension install @maap-jupyterlab/user-workspace-management-jupyter-extension@0.0.5 --no-build -RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.0 --no-build +RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@1.0.1 --no-build RUN jupyter labextension install @maap-jupyterlab/che-sidebar-visibility-jupyter-extension@1.0.1 --no-build RUN jupyter lab build && \