diff --git a/codeserver/ubi9-python-3.11/Dockerfile.konflux.cpu b/codeserver/ubi9-python-3.11/Dockerfile.konflux.cpu deleted file mode 100644 index 482dcd418c..0000000000 --- a/codeserver/ubi9-python-3.11/Dockerfile.konflux.cpu +++ /dev/null @@ -1,154 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - - -#################### -# codeserver # -#################### -FROM base AS codeserver - -ARG TARGETOS TARGETARCH - -ARG CODESERVER_SOURCE_CODE=codeserver/ubi9-python-3.11 -ARG CODESERVER_VERSION=v4.98.0 - -USER 0 - -WORKDIR /opt/app-root/bin - -# Install useful OS packages -RUN dnf install -y jq git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Install code-server -RUN yum install -y "https://github.com/coder/code-server/releases/download/${CODESERVER_VERSION}/code-server-${CODESERVER_VERSION/v/}-${TARGETARCH}.rpm" && \ - yum -y clean all --enablerepo='*' - -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/utils utils/ - -# Create and intall the extensions though build-time on a temporary directory. Later this directory will copied on the `/opt/app-root/src/.local/share/code-server/extensions` via run-code-server.sh file when it starts up. -RUN mkdir -p /opt/app-root/extensions-temp && \ - code-server --install-extension /opt/app-root/bin/utils/ms-python.python-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp && \ - code-server --install-extension /opt/app-root/bin/utils/ms-toolsai.jupyter-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp - -# Install NGINX to proxy code-server and pass probes check -ENV NGINX_VERSION=1.24 \ - NGINX_SHORT_VER=124 \ - NGINX_CONFIGURATION_PATH=${APP_ROOT}/etc/nginx.d \ - NGINX_CONF_PATH=/etc/nginx/nginx.conf \ - NGINX_DEFAULT_CONF_PATH=${APP_ROOT}/etc/nginx.default.d \ - NGINX_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/nginx \ - NGINX_APP_ROOT=${APP_ROOT} \ - NGINX_LOG_PATH=/var/log/nginx \ - NGINX_PERL_MODULE_PATH=${APP_ROOT}/etc/perl - -# Modules does not exist -RUN yum install -y https://download.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \ - INSTALL_PKGS="bind-utils nginx nginx-mod-stream nginx-mod-http-perl fcgiwrap initscripts chkconfig supervisor" && \ - yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \ - rpm -V $INSTALL_PKGS && \ - yum -y clean all --enablerepo='*' - -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/supervisord/supervisord.conf /etc/supervisor/conf.d/supervisord.conf - -# Copy extra files to the image. -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/nginx/root/ / - -# Changing ownership and user rights to support following use-cases: -# 1) running container on OpenShift, whose default security model -# is to run the container under random UID, but GID=0 -# 2) for working root-less container with UID=1001, which does not have -# to have GID=0 -# 3) for default use-case, that is running container directly on operating system, -# with default UID and GID (1001:0) -# Supported combinations of UID:GID are thus following: -# UID=1001 && GID=0 -# UID=&& GID=0 -# UID=1001 && GID= -RUN sed -i -f ${NGINX_APP_ROOT}/nginxconf.sed ${NGINX_CONF_PATH} && \ - mkdir -p ${NGINX_APP_ROOT}/etc/nginx.d/ && \ - mkdir -p ${NGINX_APP_ROOT}/etc/nginx.default.d/ && \ - mkdir -p ${NGINX_APP_ROOT}/api/ && \ - mkdir -p ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ - mkdir -p ${NGINX_LOG_PATH} && \ - mkdir -p ${NGINX_PERL_MODULE_PATH} && \ - chown -R 1001:0 ${NGINX_CONF_PATH} && \ - chown -R 1001:0 ${NGINX_APP_ROOT}/etc && \ - chown -R 1001:0 ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ - chown -R 1001:0 /var/lib/nginx /var/log/nginx /run && \ - chmod ug+rw ${NGINX_CONF_PATH} && \ - chmod -R ug+rwX ${NGINX_APP_ROOT}/etc && \ - chmod -R ug+rwX ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ - chmod -R ug+rwX /var/lib/nginx /var/log/nginx /run && \ - rpm-file-permissions && \ - # Ensure the temporary directory and target directory have the correct permissions - mkdir -p /opt/app-root/src/.local/share/code-server/extensions && \ - mkdir -p /opt/app-root/src/.local/share/code-server/coder-logs && \ - chown -R 1001:0 /opt/app-root/src/.local/share/code-server && \ - chown -R 1001:0 /opt/app-root/extensions-temp && \ - chown -R 1001:0 /opt/app-root/src/.config/code-server - -## Configure nginx -COPY ${CODESERVER_SOURCE_CODE}/nginx/serverconf/ /opt/app-root/etc/nginx.default.d/ -COPY ${CODESERVER_SOURCE_CODE}/nginx/httpconf/ /opt/app-root/etc/nginx.d/ -COPY ${CODESERVER_SOURCE_CODE}/nginx/api/ /opt/app-root/api/ - -# Launcher -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/run-code-server.sh ${CODESERVER_SOURCE_CODE}/run-nginx.sh ./ - -ENV SHELL=/bin/bash - -ENV PYTHONPATH=/opt/app-root/bin/python3 - -USER 1001 - -# Install useful packages from Pipfile.lock -COPY ${CODESERVER_SOURCE_CODE}/Pipfile.lock ./ - -# Install packages and cleanup -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -CMD ["/opt/app-root/bin/run-code-server.sh"] - -LABEL name="rhoai/odh-workbench-codeserver-datascience-cpu-py311-rhel9" \ - com.redhat.component="odh-workbench-codeserver-datascience-cpu-py311-rhel9" \ - io.k8s.display-name="odh-workbench-codeserver-datascience-cpu-py311-rhel9" \ - summary="code-server image with python 3.11 based on UBI 9" \ - description="code-server image with python 3.11 based on UBI9" \ - io.k8s.description="code-server image with python 3.11 based on UBI9" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/codeserver/ubi9-python-3.12/Dockerfile.konflux.cpu b/codeserver/ubi9-python-3.12/Dockerfile.konflux.cpu deleted file mode 100644 index 2f7d6f869b..0000000000 --- a/codeserver/ubi9-python-3.12/Dockerfile.konflux.cpu +++ /dev/null @@ -1,154 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - - -#################### -# codeserver # -#################### -FROM base AS codeserver - -ARG TARGETOS TARGETARCH - -ARG CODESERVER_SOURCE_CODE=codeserver/ubi9-python-3.12 -ARG CODESERVER_VERSION=v4.98.0 - -USER 0 - -WORKDIR /opt/app-root/bin - -# Install useful OS packages -RUN dnf install -y jq git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Install code-server -RUN yum install -y "https://github.com/coder/code-server/releases/download/${CODESERVER_VERSION}/code-server-${CODESERVER_VERSION/v/}-${TARGETARCH}.rpm" && \ - yum -y clean all --enablerepo='*' - -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/utils utils/ - -# Create and intall the extensions though build-time on a temporary directory. Later this directory will copied on the `/opt/app-root/src/.local/share/code-server/extensions` via run-code-server.sh file when it starts up. -RUN mkdir -p /opt/app-root/extensions-temp && \ - code-server --install-extension /opt/app-root/bin/utils/ms-python.python-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp && \ - code-server --install-extension /opt/app-root/bin/utils/ms-toolsai.jupyter-2025.2.0.vsix --extensions-dir /opt/app-root/extensions-temp - -# Install NGINX to proxy code-server and pass probes check -ENV NGINX_VERSION=1.24 \ - NGINX_SHORT_VER=124 \ - NGINX_CONFIGURATION_PATH=${APP_ROOT}/etc/nginx.d \ - NGINX_CONF_PATH=/etc/nginx/nginx.conf \ - NGINX_DEFAULT_CONF_PATH=${APP_ROOT}/etc/nginx.default.d \ - NGINX_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/nginx \ - NGINX_APP_ROOT=${APP_ROOT} \ - NGINX_LOG_PATH=/var/log/nginx \ - NGINX_PERL_MODULE_PATH=${APP_ROOT}/etc/perl - -# Modules does not exist -RUN yum install -y https://download.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \ - INSTALL_PKGS="bind-utils nginx nginx-mod-stream nginx-mod-http-perl fcgiwrap initscripts chkconfig supervisor" && \ - yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \ - rpm -V $INSTALL_PKGS && \ - yum -y clean all --enablerepo='*' - -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/supervisord/supervisord.conf /etc/supervisor/conf.d/supervisord.conf - -# Copy extra files to the image. -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/nginx/root/ / - -# Changing ownership and user rights to support following use-cases: -# 1) running container on OpenShift, whose default security model -# is to run the container under random UID, but GID=0 -# 2) for working root-less container with UID=1001, which does not have -# to have GID=0 -# 3) for default use-case, that is running container directly on operating system, -# with default UID and GID (1001:0) -# Supported combinations of UID:GID are thus following: -# UID=1001 && GID=0 -# UID=&& GID=0 -# UID=1001 && GID= -RUN sed -i -f ${NGINX_APP_ROOT}/nginxconf.sed ${NGINX_CONF_PATH} && \ - mkdir -p ${NGINX_APP_ROOT}/etc/nginx.d/ && \ - mkdir -p ${NGINX_APP_ROOT}/etc/nginx.default.d/ && \ - mkdir -p ${NGINX_APP_ROOT}/api/ && \ - mkdir -p ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ - mkdir -p ${NGINX_LOG_PATH} && \ - mkdir -p ${NGINX_PERL_MODULE_PATH} && \ - chown -R 1001:0 ${NGINX_CONF_PATH} && \ - chown -R 1001:0 ${NGINX_APP_ROOT}/etc && \ - chown -R 1001:0 ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ - chown -R 1001:0 /var/lib/nginx /var/log/nginx /run && \ - chmod ug+rw ${NGINX_CONF_PATH} && \ - chmod -R ug+rwX ${NGINX_APP_ROOT}/etc && \ - chmod -R ug+rwX ${NGINX_CONTAINER_SCRIPTS_PATH}/nginx-start && \ - chmod -R ug+rwX /var/lib/nginx /var/log/nginx /run && \ - rpm-file-permissions && \ - # Ensure the temporary directory and target directory have the correct permissions - mkdir -p /opt/app-root/src/.local/share/code-server/extensions && \ - mkdir -p /opt/app-root/src/.local/share/code-server/coder-logs && \ - chown -R 1001:0 /opt/app-root/src/.local/share/code-server && \ - chown -R 1001:0 /opt/app-root/extensions-temp && \ - chown -R 1001:0 /opt/app-root/src/.config/code-server - -## Configure nginx -COPY ${CODESERVER_SOURCE_CODE}/nginx/serverconf/ /opt/app-root/etc/nginx.default.d/ -COPY ${CODESERVER_SOURCE_CODE}/nginx/httpconf/ /opt/app-root/etc/nginx.d/ -COPY ${CODESERVER_SOURCE_CODE}/nginx/api/ /opt/app-root/api/ - -# Launcher -COPY --chown=1001:0 ${CODESERVER_SOURCE_CODE}/run-code-server.sh ${CODESERVER_SOURCE_CODE}/run-nginx.sh ./ - -ENV SHELL=/bin/bash - -ENV PYTHONPATH=/opt/app-root/bin/python3 - -USER 1001 - -# Install useful packages from Pipfile.lock -COPY ${CODESERVER_SOURCE_CODE}/Pipfile.lock ./ - -# Install packages and cleanup -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -CMD ["/opt/app-root/bin/run-code-server.sh"] - -LABEL name="rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9" \ - com.redhat.component="odh-workbench-codeserver-datascience-cpu-py312-rhel9" \ - io.k8s.display-name="odh-workbench-codeserver-datascience-cpu-py312-rhel9" \ - summary="code-server image with python 3.12 based on UBI 9" \ - description="code-server image with python 3.12 based on UBI9" \ - io.k8s.description="code-server image with python 3.11 based on UBI9" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/datascience/ubi9-python-3.11/Dockerfile.konflux.cpu b/jupyter/datascience/ubi9-python-3.11/Dockerfile.konflux.cpu deleted file mode 100644 index 5b2b2739cc..0000000000 --- a/jupyter/datascience/ubi9-python-3.11/Dockerfile.konflux.cpu +++ /dev/null @@ -1,134 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -######################## -# base # -######################## -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# jupyter-minimal # -#################### -FROM base AS jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - - -######################## -# jupyter-datascience # -######################## -FROM jupyter-minimal AS jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${DATASCIENCE_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - mkdir /opt/app-root/pipeline-runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-datascience-cpu-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-datascience-cpu-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-datascience-cpu-py311-rhel9" \ - summary="Jupyter data science notebook image for ODH notebooks" \ - description="Jupyter data science notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter data science notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu b/jupyter/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu deleted file mode 100644 index 2155ed8250..0000000000 --- a/jupyter/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu +++ /dev/null @@ -1,132 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -######################## -# base # -######################## -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# jupyter-minimal # -#################### -FROM base AS jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - - -######################## -# jupytyer-datascience # -######################## -FROM jupyter-minimal AS jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${DATASCIENCE_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - mkdir /opt/app-root/pipeline-runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-datascience-cpu-py312-rhel9" \ - com.redhat.component="odh-workbench-jupyter-datascience-cpu-py312-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-datascience-cpu-py312-rhel9" \ - summary="Jupyter data science notebook image for ODH notebooks" \ - description="Jupyter data science notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter data science notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.cpu b/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.cpu deleted file mode 100644 index d6066756fd..0000000000 --- a/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.cpu +++ /dev/null @@ -1,82 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# jupyter-minimal # -#################### -FROM base AS jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -COPY ${MINIMAL_SOURCE_CODE}/Pipfile.lock ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -# Install Python dependencies from Pipfile.lock file -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -LABEL name="rhoai/odh-workbench-jupyter-minimal-cpu-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-minimal-cpu-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-minimal-cpu-py311-rhel9" \ - summary="Minimal Jupyter notebook image for ODH notebooks" \ - description="Minimal Jupyter notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Minimal Jupyter notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.cuda b/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.cuda deleted file mode 100644 index 45feaca6de..0000000000 --- a/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.cuda +++ /dev/null @@ -1,184 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-jupyter-minimal # -######################### -FROM cuda-base AS cuda-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -COPY ${MINIMAL_SOURCE_CODE}/Pipfile.lock ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -# Install Python dependencies from Pipfile.lock file -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -LABEL name="rhoai/odh-workbench-jupyter-minimal-cuda-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-minimal-cuda-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-minimal-cuda-py311-rhel9" \ - summary="Minimal Jupyter CUDA notebook image for ODH notebooks" \ - description="Minimal Jupyter CUDA notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Minimal Jupyter CUDA notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.rocm b/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.rocm deleted file mode 100644 index 7a1661f441..0000000000 --- a/jupyter/minimal/ubi9-python-3.11/Dockerfile.konflux.rocm +++ /dev/null @@ -1,116 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -######################## -# rocm-base # -######################## -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.11 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################## -# rocm-jupyter-minimal # -######################## -FROM rocm-base AS rocm-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -COPY ${MINIMAL_SOURCE_CODE}/Pipfile.lock ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -# Install Python dependencies from Pipfile.lock file -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -LABEL name="rhoai/odh-workbench-jupyter-minimal-rocm-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-minimal-rocm-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-minimal-rocm-py311-rhel9" \ - summary="Minimal Jupyter ROCm notebook image for ODH notebooks" \ - description="Minimal Jupyter ROCm notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Minimal Jupyter ROCm notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.cpu b/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.cpu index 7016de7f03..3323f3cb71 100644 --- a/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.cpu +++ b/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.cpu @@ -13,6 +13,8 @@ RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_d && dnf clean all -y # upgrade first to avoid fixable vulnerabilities end +RUN subscription-manager refresh + # Install useful OS packages RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum diff --git a/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.cuda b/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.cuda deleted file mode 100644 index 66e70a49be..0000000000 --- a/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.cuda +++ /dev/null @@ -1,192 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-jupyter-minimal # -######################### -FROM cuda-base AS cuda-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.12 - -LABEL name="odh-notebook-jupyter-cuda-minimal-ubi9-python-3.12" \ - summary="Minimal Jupyter CUDA notebook image for ODH notebooks" \ - description="Minimal Jupyter CUDA notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.display-name="Minimal Jupyter CUDA notebook image for ODH notebooks" \ - io.k8s.description="Minimal Jupyter CUDA notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - authoritative-source-url="https://github.com/opendatahub-io/notebooks" \ - io.openshift.build.commit.ref="main" \ - io.openshift.build.source-location="https://github.com/opendatahub-io/notebooks/tree/main/jupyter/minimal/ubi9-python-3.12" \ - io.openshift.build.image="quay.io/opendatahub/workbench-images:cuda-jupyter-minimal-ubi9-python-3.12" - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -COPY ${MINIMAL_SOURCE_CODE}/Pipfile.lock ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -# Install Python dependencies from Pipfile.lock file -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -LABEL name="rhoai/odh-workbench-jupyter-minimal-cuda-py312-rhel9" \ - com.redhat.component="odh-workbench-jupyter-minimal-cuda-py312-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-minimal-cuda-py312-rhel9" \ - summary="Minimal Jupyter CUDA notebook image for ODH notebooks" \ - description="Minimal Jupyter CUDA notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Minimal Jupyter CUDA notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.rocm b/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.rocm deleted file mode 100644 index a7461b14e8..0000000000 --- a/jupyter/minimal/ubi9-python-3.12/Dockerfile.konflux.rocm +++ /dev/null @@ -1,114 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -######################## -# rocm-base # -######################## -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.12 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################## -# rocm-jupyter-minimal # -######################## -FROM rocm-base AS rocm-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -COPY ${MINIMAL_SOURCE_CODE}/Pipfile.lock ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -# Install Python dependencies from Pipfile.lock file -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -LABEL name="rhoai/odh-workbench-jupyter-minimal-rocm-py312-rhel9" \ - com.redhat.component="odh-workbench-jupyter-minimal-rocm-py312-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-minimal-rocm-py312-rhel9" \ - summary="Minimal Jupyter ROCm notebook image for ODH notebooks" \ - description="Minimal Jupyter ROCm notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Minimal Jupyter ROCm notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/pytorch/ubi9-python-3.11/Dockerfile.konflux.cuda b/jupyter/pytorch/ubi9-python-3.11/Dockerfile.konflux.cuda deleted file mode 100644 index 4885b45150..0000000000 --- a/jupyter/pytorch/ubi9-python-3.11/Dockerfile.konflux.cuda +++ /dev/null @@ -1,247 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-jupyter-minimal # -######################### -FROM cuda-base AS cuda-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -############################# -# cuda-jupyter-datascience # -############################# -FROM cuda-jupyter-minimal AS cuda-jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - -############################# -# cuda-jupyter-pytorch # -############################# -FROM cuda-jupyter-datascience AS cuda-jupyter-pytorch - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 -ARG PYTORCH_SOURCE_CODE=jupyter/pytorch/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-pytorch-cuda-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-pytorch-cuda-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-pytorch-cuda-py311-rhel9" \ - summary="Jupyter CUDA pytorch notebook image for ODH notebooks" \ - description="Jupyter CUDA pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter CUDA pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/pytorch/ubi9-python-3.12/Dockerfile.konflux.cuda b/jupyter/pytorch/ubi9-python-3.12/Dockerfile.konflux.cuda deleted file mode 100644 index 705ce6018b..0000000000 --- a/jupyter/pytorch/ubi9-python-3.12/Dockerfile.konflux.cuda +++ /dev/null @@ -1,246 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-jupyter-minimal # -######################### -FROM cuda-base AS cuda-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -############################# -# cuda-jupyter-datascience # -############################# -FROM cuda-jupyter-minimal AS cuda-jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - -############################# -# cuda-jupyter-pytorch # -############################# -FROM cuda-jupyter-datascience AS cuda-jupyter-pytorch - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 -ARG PYTORCH_SOURCE_CODE=jupyter/pytorch/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-pytorch-cuda-py312-rhel9" \ - com.redhat.component="odh-workbench-jupyter-pytorch-cuda-py312-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-pytorch-cuda-py312-rhel9" \ - summary="Jupyter CUDA pytorch notebook image for ODH notebooks" \ - description="Jupyter CUDA pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter CUDA pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/rocm/pytorch/ubi9-python-3.11/Dockerfile.konflux.rocm b/jupyter/rocm/pytorch/ubi9-python-3.11/Dockerfile.konflux.rocm deleted file mode 100644 index 9b0d00e026..0000000000 --- a/jupyter/rocm/pytorch/ubi9-python-3.11/Dockerfile.konflux.rocm +++ /dev/null @@ -1,183 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -######################## -# rocm-base # -######################## -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.11 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################## -# rocm-jupyter-minimal # -######################## -FROM rocm-base AS rocm-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -############################ -# rocm-jupyter-datascience # -############################ -FROM rocm-jupyter-minimal AS rocm-jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - - -######################## -# rocm-jupyter-pytorch # -######################## -FROM rocm-jupyter-datascience AS rocm-jupyter-pytorch - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 -ARG PYTORCH_SOURCE_CODE=jupyter/rocm/pytorch/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ${PYTORCH_SOURCE_CODE}/de-vendor-torch.sh ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # De-vendor the ROCm libs that are embedded in Pytorch \ - ./de-vendor-torch.sh && \ - rm ./de-vendor-torch.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-pytorch-rocm-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-pytorch-rocm-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-pytorch-rocm-py311-rhel9" \ - summary="Jupyter ROCm pytorch notebook image for ODH notebooks" \ - description="Jupyter ROCm pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter ROCm pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.konflux.rocm b/jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.konflux.rocm deleted file mode 100644 index a1dd7aa97a..0000000000 --- a/jupyter/rocm/pytorch/ubi9-python-3.12/Dockerfile.konflux.rocm +++ /dev/null @@ -1,183 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -######################## -# rocm-base # -######################## -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.12 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################## -# rocm-jupyter-minimal # -######################## -FROM rocm-base AS rocm-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -############################ -# rocm-jupyter-datascience # -############################ -FROM rocm-jupyter-minimal AS rocm-jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - - -######################## -# rocm-jupyter-pytorch # -######################## -FROM rocm-jupyter-datascience AS rocm-jupyter-pytorch - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 -ARG PYTORCH_SOURCE_CODE=jupyter/rocm/pytorch/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ${PYTORCH_SOURCE_CODE}/de-vendor-torch.sh ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # De-vendor the ROCm libs that are embedded in Pytorch \ - ./de-vendor-torch.sh && \ - rm ./de-vendor-torch.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-pytorch-rocm-py312-rhel9" \ - com.redhat.component="odh-workbench-jupyter-pytorch-rocm-py312-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-pytorch-rocm-py312-rhel9" \ - summary="Jupyter ROCm pytorch notebook image for ODH notebooks" \ - description="Jupyter ROCm pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter ROCm pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/rocm/tensorflow/ubi9-python-3.11/Dockerfile.konflux.rocm b/jupyter/rocm/tensorflow/ubi9-python-3.11/Dockerfile.konflux.rocm deleted file mode 100644 index d1510d47b2..0000000000 --- a/jupyter/rocm/tensorflow/ubi9-python-3.11/Dockerfile.konflux.rocm +++ /dev/null @@ -1,180 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -######################## -# rocm-base # -######################## -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.11 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################## -# rocm-jupyter-minimal # -######################## -FROM rocm-base AS rocm-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -############################ -# rocm-jupyter-datascience # -############################ -FROM rocm-jupyter-minimal AS rocm-jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - - -########################### -# rocm-jupyter-tensorflow # -########################### -FROM rocm-jupyter-datascience AS rocm-jupyter-tensorflow - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 -ARG TENSORFLOW_SOURCE_CODE=jupyter/rocm/tensorflow/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${TENSORFLOW_SOURCE_CODE}/Pipfile.lock ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install --dev && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-tensorflow-rocm-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-tensorflow-rocm-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-tensorflow-rocm-py311-rhel9" \ - summary="Jupyter AMD tensorflow notebook image for ODH notebooks" \ - description="Jupyter AMD tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter AMD tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/tensorflow/ubi9-python-3.11/Dockerfile.konflux.cuda b/jupyter/tensorflow/ubi9-python-3.11/Dockerfile.konflux.cuda deleted file mode 100644 index 3f80d03838..0000000000 --- a/jupyter/tensorflow/ubi9-python-3.11/Dockerfile.konflux.cuda +++ /dev/null @@ -1,247 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-jupyter-minimal # -######################### -FROM cuda-base AS cuda-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -############################# -# cuda-jupyter-datascience # -############################# -FROM cuda-jupyter-minimal AS cuda-jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - -############################ -# cuda-jupyter-tensorflow # -############################ -FROM cuda-jupyter-datascience AS cuda-jupyter-tensorflow - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 -ARG TENSORFLOW_SOURCE_CODE=jupyter/tensorflow/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${TENSORFLOW_SOURCE_CODE}/Pipfile.lock ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install --dev && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-tensorflow-cuda-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-tensorflow-cuda-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-tensorflow-cuda-py311-rhel9" \ - summary="Jupyter CUDA tensorflow notebook image for ODH notebooks" \ - description="Jupyter CUDA tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter CUDA tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/tensorflow/ubi9-python-3.12/Dockerfile.konflux.cuda b/jupyter/tensorflow/ubi9-python-3.12/Dockerfile.konflux.cuda deleted file mode 100644 index 2f05676709..0000000000 --- a/jupyter/tensorflow/ubi9-python-3.12/Dockerfile.konflux.cuda +++ /dev/null @@ -1,251 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-jupyter-minimal # -######################### -FROM cuda-base AS cuda-jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ - -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - -############################# -# cuda-jupyter-datascience # -############################# -FROM cuda-jupyter-minimal AS cuda-jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# hdf5 is needed for h5py -RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \ - dnf install -y hdf5-devel && \ - dnf clean all - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - -############################ -# cuda-jupyter-tensorflow # -############################ -FROM cuda-jupyter-datascience AS cuda-jupyter-tensorflow - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 -ARG TENSORFLOW_SOURCE_CODE=jupyter/tensorflow/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${TENSORFLOW_SOURCE_CODE}/Pipfile.lock ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install --dev && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-workbench-jupyter-tensorflow-cuda-py312-rhel9" \ - com.redhat.component="odh-workbench-jupyter-tensorflow-cuda-py312-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-tensorflow-cuda-py312-rhel9" \ - summary="Jupyter CUDA tensorflow notebook image for ODH notebooks" \ - description="Jupyter CUDA tensorflow notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter CUDA tensorflow notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/trustyai/ubi9-python-3.11/Dockerfile.konflux.cpu b/jupyter/trustyai/ubi9-python-3.11/Dockerfile.konflux.cpu deleted file mode 100644 index 6e3d74df82..0000000000 --- a/jupyter/trustyai/ubi9-python-3.11/Dockerfile.konflux.cpu +++ /dev/null @@ -1,151 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -######################## -# base # -######################## -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# jupyter-minimal # -#################### -FROM base AS jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - - -######################## -# jupyter-datascience # -######################## -FROM jupyter-minimal AS jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - -#################### -# jupyter-trustyai # -#################### -FROM jupyter-datascience AS jupyter-trustyai - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.11 -ARG TRUSTYAI_SOURCE_CODE=jupyter/trustyai/ubi9-python-3.11 - -USER 0 - -# Install jre that is needed to run the trustyai library -RUN INSTALL_PKGS="java-17-openjdk" && \ - yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \ - yum -y clean all --enablerepo='*' - -USER 1001 - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${TRUSTYAI_SOURCE_CODE}/Pipfile.lock ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -LABEL name="rhoai/odh-workbench-jupyter-trustyai-cpu-py311-rhel9" \ - com.redhat.component="odh-workbench-jupyter-trustyai-cpu-py311-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-trustyai-cpu-py311-rhel9" \ - summary="Jupyter trustyai notebook image for ODH notebooks" \ - description="Jupyter trustyai notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter trustyai notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/trustyai/ubi9-python-3.12/Dockerfile.konflux.cpu b/jupyter/trustyai/ubi9-python-3.12/Dockerfile.konflux.cpu deleted file mode 100644 index ed474eacd6..0000000000 --- a/jupyter/trustyai/ubi9-python-3.12/Dockerfile.konflux.cpu +++ /dev/null @@ -1,151 +0,0 @@ -###################################################### -# mongocli-builder (build stage only, not published) # -###################################################### -FROM registry.access.redhat.com/ubi9/go-toolset:latest AS mongocli-builder - -ARG MONGOCLI_VERSION=2.0.3 - -WORKDIR /tmp/ -RUN curl -Lo mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip https://github.com/mongodb/mongodb-cli/archive/refs/tags/mongocli/v${MONGOCLI_VERSION}.zip -RUN unzip ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}.zip -RUN cd ./mongodb-cli-mongocli-v${MONGOCLI_VERSION}/ && \ - CGO_ENABLED=1 GOOS=linux go build -a -tags strictfipsruntime -o /tmp/mongocli ./cmd/mongocli/ - -######################## -# base # -######################## -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# jupyter-minimal # -#################### -FROM base AS jupyter-minimal - -ARG JUPYTER_REUSABLE_UTILS=jupyter/utils -ARG MINIMAL_SOURCE_CODE=jupyter/minimal/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -COPY ${JUPYTER_REUSABLE_UTILS} utils/ -COPY ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./ - -USER 0 - -# Dependencies for PDF export begin -RUN ./utils/install_pdf_deps.sh -ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH" -# Dependencies for PDF export end - -USER 1001 - -WORKDIR /opt/app-root/src - -ENTRYPOINT ["start-notebook.sh"] - - -######################## -# jupyter-datascience # -######################## -FROM jupyter-minimal AS jupyter-datascience - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER root - -# Install useful OS packages -RUN dnf install -y jq unixODBC postgresql git-lfs libsndfile libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Copy dynamically-linked mongocli built in earlier build stage -COPY --from=mongocli-builder /tmp/mongocli /opt/app-root/bin/ - -# Install MSSQL Client, We need a special repo for MSSQL as they do their own distribution -COPY ${DATASCIENCE_SOURCE_CODE}/mssql-2022.repo /etc/yum.repos.d/mssql-2022.repo - -RUN ACCEPT_EULA=Y dnf install -y mssql-tools18 unixODBC-devel && dnf clean all && rm -rf /var/cache/yum - -ENV PATH="$PATH:/opt/mssql-tools18/bin" - -# Other apps and tools installed as default user -USER 1001 - -# Copy Elyra setup to utils so that it's sourced at startup -COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -WORKDIR /opt/app-root/src - -#################### -# jupyter-trustyai # -#################### -FROM jupyter-datascience AS jupyter-trustyai - -ARG DATASCIENCE_SOURCE_CODE=jupyter/datascience/ubi9-python-3.12 -ARG TRUSTYAI_SOURCE_CODE=jupyter/trustyai/ubi9-python-3.12 - -USER 0 - -# Install jre that is needed to run the trustyai library -RUN INSTALL_PKGS="java-17-openjdk" && \ - yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \ - yum -y clean all --enablerepo='*' - -USER 1001 - -# Install Python packages and Jupyterlab extensions from Pipfile.lock -COPY ${TRUSTYAI_SOURCE_CODE}/Pipfile.lock ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # setup path for runtime configuration - mkdir /opt/app-root/runtimes && \ - # Remove default Elyra runtime-images \ - rm /opt/app-root/share/jupyter/metadata/runtime-images/*.json && \ - # Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \ - sed -i -e "s/Python.*/$(python --version | cut -d '.' -f-2)\",/" /opt/app-root/share/jupyter/kernels/python3/kernel.json && \ - # copy jupyter configuration - cp /opt/app-root/bin/utils/jupyter_server_config.py /opt/app-root/etc/jupyter && \ - # Disable announcement plugin of jupyterlab \ - jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \ - # Apply JupyterLab addons \ - /opt/app-root/bin/utils/addons/apply.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -LABEL name="rhoai/odh-workbench-jupyter-trustyai-cpu-py312-rhel9" \ - com.redhat.component="odh-workbench-jupyter-trustyai-cpu-py312-rhel9" \ - io.k8s.display-name="odh-workbench-jupyter-trustyai-cpu-py312-rhel9" \ - summary="Jupyter trustyai notebook image for ODH notebooks" \ - description="Jupyter trustyai notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Jupyter trustyai notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/jupyter/utils/install_pdf_deps.sh b/jupyter/utils/install_pdf_deps.sh index f07a54f836..7390faff0f 100755 --- a/jupyter/utils/install_pdf_deps.sh +++ b/jupyter/utils/install_pdf_deps.sh @@ -4,37 +4,40 @@ set -euxo pipefail -# Mapping of `uname -m` values to equivalent GOARCH values -declare -A UNAME_TO_GOARCH -UNAME_TO_GOARCH["x86_64"]="amd64" -UNAME_TO_GOARCH["aarch64"]="arm64" -UNAME_TO_GOARCH["ppc64le"]="ppc64le" -UNAME_TO_GOARCH["s390x"]="s390x" +# https://konflux.pages.redhat.com/docs/users/building/activation-keys-subscription.html#automatic-registration +#subscription-manager refresh -ARCH="${UNAME_TO_GOARCH[$(uname -m)]}" -if [[ -z "${ARCH:-}" ]]; then - echo "Unsupported architecture: $(uname -m)" >&2 - exit 1 -fi +#subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms -# Skip PDF export installation for s390x architecture -if [[ "$(uname -m)" == "s390x" ]]; then - echo "PDF export functionality is not supported on s390x architecture. Skipping installation." - exit 0 -fi +dnf install -y \ + pandoc \ + texlive-adjustbox \ + texlive-bibtex \ + texlive-charter \ + texlive-ec \ + texlive-euro \ + texlive-eurosym \ + texlive-fpl \ + texlive-jknapltx \ + texlive-knuth-local \ + texlive-lm-math \ + texlive-marvosym \ + texlive-mathpazo \ + texlive-mflogo-font \ + texlive-parskip \ + texlive-plain \ + texlive-pxfonts \ + texlive-rsfs \ + texlive-tcolorbox \ + texlive-times \ + texlive-titling \ + texlive-txfonts \ + texlive-ulem \ + texlive-upquote \ + texlive-utopia \ + texlive-wasy \ + texlive-wasy-type1 \ + texlive-wasysym \ + texlive-xetex -# tex live installation -echo "Installing TexLive to allow PDf export from Notebooks" -curl -fL https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz -o install-tl-unx.tar.gz -zcat < install-tl-unx.tar.gz | tar xf - -cd install-tl-2* -perl ./install-tl --no-interaction --scheme=scheme-small --texdir=/usr/local/texlive -mv /usr/local/texlive/bin/"$(uname -m)-linux" /usr/local/texlive/bin/linux -cd /usr/local/texlive/bin/linux -./tlmgr install tcolorbox pdfcol adjustbox titling enumitem soul ucs collection-fontsrecommended - -# pandoc installation -curl -fL "https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-linux-${ARCH}.tar.gz" -o /tmp/pandoc.tar.gz -mkdir -p /usr/local/pandoc -tar xvzf /tmp/pandoc.tar.gz --strip-components 1 -C /usr/local/pandoc/ -rm -f /tmp/pandoc.tar.gz +dnf clean all diff --git a/runtimes/datascience/ubi9-python-3.11/Dockerfile.konflux.cpu b/runtimes/datascience/ubi9-python-3.11/Dockerfile.konflux.cpu deleted file mode 100644 index 49a8f6fc01..0000000000 --- a/runtimes/datascience/ubi9-python-3.11/Dockerfile.konflux.cpu +++ /dev/null @@ -1,62 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -####################### -# runtime-datascience # -####################### -FROM base AS runtime-datascience - -ARG DATASCIENCE_SOURCE_CODE=runtimes/datascience/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${DATASCIENCE_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-datascience-cpu-py311-rhel9" \ - com.redhat.component="odh-pipeline-runtime-datascience-cpu-py311-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-datascience-cpu-py311-rhel9" \ - io.k8s.description="Runtime data science notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - description="Runtime data science notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - summary="Runtime data science notebook image for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu b/runtimes/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu deleted file mode 100644 index f05af8f542..0000000000 --- a/runtimes/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu +++ /dev/null @@ -1,62 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -####################### -# runtime-datascience # -####################### -FROM base AS runtime-datascience - -ARG DATASCIENCE_SOURCE_CODE=runtimes/datascience/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${DATASCIENCE_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${DATASCIENCE_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-datascience-cpu-py312-rhel9" \ - com.redhat.component="odh-pipeline-runtime-datascience-cpu-py312-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-datascience-cpu-py312-rhel9" \ - io.k8s.description="Runtime data science notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - description="Runtime data science notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - summary="Runtime data science notebook image for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/minimal/ubi9-python-3.11/Dockerfile.konflux.cpu b/runtimes/minimal/ubi9-python-3.11/Dockerfile.konflux.cpu deleted file mode 100644 index f19a9671c2..0000000000 --- a/runtimes/minimal/ubi9-python-3.11/Dockerfile.konflux.cpu +++ /dev/null @@ -1,69 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN ARCH=$(uname -m) && \ - echo "Detected architecture: $ARCH" && \ - PACKAGES="mesa-libGL skopeo" && \ - if [ "$ARCH" = "s390x" ]; then \ - PACKAGES="$PACKAGES gcc g++ make openssl-devel autoconf automake libtool cmake"; \ - fi && \ - dnf install -y $PACKAGES && \ - dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# runtime-minimal # -#################### -FROM base AS runtime-minimal - -ARG MINIMAL_SOURCE_CODE=runtimes/minimal/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${MINIMAL_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${MINIMAL_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-minimal-cpu-py311-rhel9" \ - com.redhat.component="odh-pipeline-runtime-minimal-cpu-py311-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-minimal-cpu-py311-rhel9" \ - io.k8s.description="Runtime minimal image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - description="Runtime minimal image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - summary="Runtime minimal image for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/minimal/ubi9-python-3.12/Dockerfile.konflux.cpu b/runtimes/minimal/ubi9-python-3.12/Dockerfile.konflux.cpu deleted file mode 100644 index 368e2071ae..0000000000 --- a/runtimes/minimal/ubi9-python-3.12/Dockerfile.konflux.cpu +++ /dev/null @@ -1,69 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN ARCH=$(uname -m) && \ - echo "Detected architecture: $ARCH" && \ - PACKAGES="mesa-libGL skopeo" && \ - if [ "$ARCH" = "s390x" ]; then \ - PACKAGES="$PACKAGES gcc g++ make openssl-devel autoconf automake libtool cmake"; \ - fi && \ - dnf install -y $PACKAGES && \ - dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# runtime-minimal # -#################### -FROM base AS runtime-minimal - -ARG MINIMAL_SOURCE_CODE=runtimes/minimal/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${MINIMAL_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${MINIMAL_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-minimal-cpu-py312-rhel9" \ - com.redhat.component="odh-pipeline-runtime-minimal-cpu-py312-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-minimal-cpu-py312-rhel9" \ - summary="Runtime minimal image for ODH notebooks" \ - description="Runtime minimal image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime minimal image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/pytorch/ubi9-python-3.11/Dockerfile.konflux.cuda b/runtimes/pytorch/ubi9-python-3.11/Dockerfile.konflux.cuda deleted file mode 100644 index c88d22f70d..0000000000 --- a/runtimes/pytorch/ubi9-python-3.11/Dockerfile.konflux.cuda +++ /dev/null @@ -1,164 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-runtime-pytorch # -######################### -FROM cuda-base AS cuda-runtime-pytorch - -ARG PYTORCH_SOURCE_CODE=runtimes/pytorch/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${PYTORCH_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src11 - -LABEL name="rhoai/odh-pipeline-runtime-pytorch-cuda-py311-rhel9" \ - com.redhat.component="odh-pipeline-runtime-pytorch-cuda-py311-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-pytorch-cuda-py311-rhel9" \ - summary="Runtime pytorch notebook image for ODH notebooks" \ - description="Runtime pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/pytorch/ubi9-python-3.12/Dockerfile.konflux.cuda b/runtimes/pytorch/ubi9-python-3.12/Dockerfile.konflux.cuda deleted file mode 100644 index a65404f205..0000000000 --- a/runtimes/pytorch/ubi9-python-3.12/Dockerfile.konflux.cuda +++ /dev/null @@ -1,164 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################### -# cuda-runtime-pytorch # -######################### -FROM cuda-base AS cuda-runtime-pytorch - -ARG PYTORCH_SOURCE_CODE=runtimes/pytorch/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${PYTORCH_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-pytorch-cuda-py312-rhel9" \ - com.redhat.component="odh-pipeline-runtime-pytorch-cuda-py312-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-pytorch-cuda-py312-rhel9" \ - summary="Runtime pytorch notebook image for ODH notebooks" \ - description="Runtime pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/rocm-pytorch/ubi9-python-3.11/Dockerfile.konflux.rocm b/runtimes/rocm-pytorch/ubi9-python-3.11/Dockerfile.konflux.rocm deleted file mode 100644 index 191d154d98..0000000000 --- a/runtimes/rocm-pytorch/ubi9-python-3.11/Dockerfile.konflux.rocm +++ /dev/null @@ -1,101 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -############# -# rocm-base # -############# -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.11 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################## -# rocm-runtime-pytorch # -######################## -FROM rocm-base AS rocm-runtime-pytorch - -ARG PYTORCH_SOURCE_CODE=runtimes/rocm-pytorch/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${PYTORCH_SOURCE_CODE}/utils ./utils/ -# Copy utility script -COPY ${PYTORCH_SOURCE_CODE}/de-vendor-torch.sh ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # De-vendor the ROCm libs that are embedded in Pytorch \ - ./de-vendor-torch.sh && \ - rm ./de-vendor-torch.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-pytorch-rocm-py311-rhel9" \ - com.redhat.component="odh-pipeline-runtime-pytorch-rocm-py311-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-pytorch-rocm-py311-rhel9" \ - summary="Runtime ROCm pytorch notebook image for ODH notebooks" \ - description="Runtime ROCm pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime ROCm pytorch notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.konflux.rocm b/runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.konflux.rocm deleted file mode 100644 index d79c46f729..0000000000 --- a/runtimes/rocm-pytorch/ubi9-python-3.12/Dockerfile.konflux.rocm +++ /dev/null @@ -1,101 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -############# -# rocm-base # -############# -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.12 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -######################## -# rocm-runtime-pytorch # -######################## -FROM rocm-base AS rocm-runtime-pytorch - -ARG PYTORCH_SOURCE_CODE=runtimes/rocm-pytorch/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${PYTORCH_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${PYTORCH_SOURCE_CODE}/utils ./utils/ -# Copy utility script -COPY ${PYTORCH_SOURCE_CODE}/de-vendor-torch.sh ./ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # De-vendor the ROCm libs that are embedded in Pytorch \ - ./de-vendor-torch.sh && \ - rm ./de-vendor-torch.sh && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-pytorch-rocm-py312-rhel9" \ - com.redhat.component="odh-pipeline-runtime-pytorch-rocm-py312-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-pytorch-rocm-py312-rhel9" \ - summary="Runtime ROCm pytorch notebook image for ODH notebooks" \ - description="Runtime ROCm pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime ROCm pytorch notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/rocm-tensorflow/ubi9-python-3.11/Dockerfile.konflux.rocm b/runtimes/rocm-tensorflow/ubi9-python-3.11/Dockerfile.konflux.rocm deleted file mode 100644 index 15978e615e..0000000000 --- a/runtimes/rocm-tensorflow/ubi9-python-3.11/Dockerfile.konflux.rocm +++ /dev/null @@ -1,96 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -############# -# rocm-base # -############# -FROM base AS rocm-base - -USER 0 -WORKDIR /opt/app-root/bin - -# Please keep in sync with ROCm/python3.11 dependent images -ARG ROCM_VERSION=6.2.4 -ARG AMDGPU_VERSION=6.2.4 - -# Install the ROCm rpms -# ref: https://github.com/ROCm/ROCm-docker/blob/master/dev/Dockerfile-centos-7-complete -# Note: Based on 6.2 above new package mivisionx is a pre-requistes, which bring in more dependent packages -# so we are only installing meta packages of rocm -# ref: https://rocm.docs.amd.com/projects/install-on-linux/en/develop/reference/package-manager-integration.html#packages-in-rocm-programming-models -RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \ - echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \ - echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \ - echo "[amdgpu]" > /etc/yum.repos.d/amdgpu.repo && \ - echo "name=amdgpu" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "baseurl=https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/rhel/9.4/main/x86_64" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "enabled=1" >> /etc/yum.repos.d/amdgpu.repo && \ - echo "gpgcheck=0" >> /etc/yum.repos.d/amdgpu.repo && \ - yum install -y rocm-developer-tools rocm-ml-sdk rocm-opencl-sdk rocm-openmp-sdk rocm-utils && \ - yum clean all && rm -rf /var/cache/yum - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -########################### -# rocm-runtime-tensorflow # -########################### -FROM rocm-base AS rocm-runtime-tensorflow - -ARG TENSORFLOW_SOURCE_CODE=runtimes/rocm-tensorflow/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${TENSORFLOW_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${TENSORFLOW_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-tensorflow-rocm-py311-rhel9" \ - com.redhat.component="odh-pipeline-runtime-tensorflow-rocm-py311-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-tensorflow-rocm-py311-rhel9" \ - summary="Runtime ROCm tensorflow notebook image for ODH notebooks" \ - description="Runtime ROCm tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime ROCm tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/tensorflow/ubi9-python-3.11/Dockerfile.konflux.cuda b/runtimes/tensorflow/ubi9-python-3.11/Dockerfile.konflux.cuda deleted file mode 100644 index 3cfc860d5c..0000000000 --- a/runtimes/tensorflow/ubi9-python-3.11/Dockerfile.konflux.cuda +++ /dev/null @@ -1,164 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-311:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -############################ -# cuda-runtime-tensorflow # -############################ -FROM cuda-base AS cuda-runtime-tensorflow - -ARG TENSORFLOW_SOURCE_CODE=runtimes/tensorflow/ubi9-python-3.11 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${TENSORFLOW_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${TENSORFLOW_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.11/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-tensorflow-cuda-py311-rhel9" \ - com.redhat.component="odh-pipeline-runtime-tensorflow-cuda-py311-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-tensorflow-cuda-py311-rhel9" \ - summary="Runtime CUDA tensorflow notebook image for ODH notebooks" \ - description="Runtime CUDA tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime CUDA tensorflow notebook image with base Python 3.11 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf" diff --git a/runtimes/tensorflow/ubi9-python-3.12/Dockerfile.konflux.cuda b/runtimes/tensorflow/ubi9-python-3.12/Dockerfile.konflux.cuda deleted file mode 100644 index f1f8d564ec..0000000000 --- a/runtimes/tensorflow/ubi9-python-3.12/Dockerfile.konflux.cuda +++ /dev/null @@ -1,169 +0,0 @@ -#################### -# base # -#################### -FROM registry.access.redhat.com/ubi9/python-312:latest AS base - -WORKDIR /opt/app-root/bin - -# OS Packages needs to be installed as root -USER 0 - -# upgrade first to avoid fixable vulnerabilities begin -RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0 \ - && dnf clean all -y -# upgrade first to avoid fixable vulnerabilities end - -# Install useful OS packages -RUN dnf install -y mesa-libGL skopeo libxcrypt-compat && dnf clean all && rm -rf /var/cache/yum - -# Other apps and tools installed as default user -USER 1001 - -# Install micropipenv and uv to deploy packages from requirements.txt begin -RUN pip install --no-cache-dir -U "micropipenv[toml]" "uv" -# Install micropipenv and uv to deploy packages from requirements.txt end - -# Install the oc client begin -RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz \ - -o /tmp/openshift-client-linux.tar.gz && \ - tar -xzvf /tmp/openshift-client-linux.tar.gz oc && \ - rm -f /tmp/openshift-client-linux.tar.gz -# Install the oc client end - -#################### -# cuda-base # -#################### -FROM base AS cuda-base-amd64 -ENV NVARCH=x86_64 -# cuda-nvprof only gets installed on amd64 currently -ENV NV_NVPROF_VERSION=12.6.80-1 -ENV NV_NVPROF_DEV_PACKAGE=cuda-nvprof-12-6-${NV_NVPROF_VERSION} - -FROM base AS cuda-base-arm64 -ENV NVARCH=sbsa - -FROM cuda-base-${TARGETARCH} AS cuda-base - -ARG TARGETARCH - -ARG CUDA_SOURCE_CODE=cuda - -# Install CUDA base from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/base/Dockerfile -USER 0 -WORKDIR /opt/app-root/bin - -ENV NVIDIA_REQUIRE_CUDA="cuda>=12.6 brand=unknown,driver>=470,driver<471 brand=grid,driver>=470,driver<471 brand=tesla,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=vapps,driver>=470,driver<471 brand=vpc,driver>=470,driver<471 brand=vcs,driver>=470,driver<471 brand=vws,driver>=470,driver<471 brand=cloudgaming,driver>=470,driver<471 brand=unknown,driver>=535,driver<536 brand=grid,driver>=535,driver<536 brand=tesla,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=vapps,driver>=535,driver<536 brand=vpc,driver>=535,driver<536 brand=vcs,driver>=535,driver<536 brand=vws,driver>=535,driver<536 brand=cloudgaming,driver>=535,driver<536 brand=unknown,driver>=550,driver<551 brand=grid,driver>=550,driver<551 brand=tesla,driver>=550,driver<551 brand=nvidia,driver>=550,driver<551 brand=quadro,driver>=550,driver<551 brand=quadrortx,driver>=550,driver<551 brand=nvidiartx,driver>=550,driver<551 brand=vapps,driver>=550,driver<551 brand=vpc,driver>=550,driver<551 brand=vcs,driver>=550,driver<551 brand=vws,driver>=550,driver<551 brand=cloudgaming,driver>=550,driver<551" -ENV NV_CUDA_CUDART_VERSION=12.6.77-1 - -COPY ${CUDA_SOURCE_CODE}/cuda.repo-${TARGETARCH} /etc/yum.repos.d/cuda.repo -COPY ${CUDA_SOURCE_CODE}/NGC-DL-CONTAINER-LICENSE / - -RUN NVIDIA_GPGKEY_SUM=d0664fbbdb8c32356d45de36c5984617217b2d0bef41b93ccecd326ba3b80c87 && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/rhel9/${NVARCH}/D42D0685.pub | sed '/^Version/d' > /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA && \ - echo "$NVIDIA_GPGKEY_SUM /etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA" | sha256sum -c --strict - - -ENV CUDA_VERSION=12.6.3 - -# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a -RUN yum upgrade -y && yum install -y \ - cuda-cudart-12-6-${NV_CUDA_CUDART_VERSION} \ - cuda-compat-12-6 \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# nvidia-docker 1.0 -RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ - echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf - -ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 - -# nvidia-container-runtime -ENV NVIDIA_VISIBLE_DEVICES=all -ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility - -# Install CUDA runtime from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/Dockerfile -ENV NV_CUDA_LIB_VERSION=12.6.3-1 -ENV NV_NVTX_VERSION=12.6.77-1 -ENV NV_LIBNPP_VERSION=12.3.1.54-1 -ENV NV_LIBNPP_PACKAGE=libnpp-12-6-${NV_LIBNPP_VERSION} -ENV NV_LIBCUBLAS_VERSION=12.6.4.1-1 -ENV NV_LIBNCCL_PACKAGE_NAME=libnccl -ENV NV_LIBNCCL_PACKAGE_VERSION=2.23.4-1 -ENV NV_LIBNCCL_VERSION=2.23.4 -ENV NCCL_VERSION=2.23.4 -ENV NV_LIBNCCL_PACKAGE=${NV_LIBNCCL_PACKAGE_NAME}-${NV_LIBNCCL_PACKAGE_VERSION}+cuda12.6 - -RUN yum install -y \ - cuda-libraries-12-6-${NV_CUDA_LIB_VERSION} \ - cuda-nvtx-12-6-${NV_NVTX_VERSION} \ - ${NV_LIBNPP_PACKAGE} \ - libcublas-12-6-${NV_LIBCUBLAS_VERSION} \ - ${NV_LIBNCCL_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install devel tools - -RUN yum install -y \ - make \ - findutils \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Install CUDA cudnn9 from: -# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/12.6.3/ubi9/runtime/cudnn/Dockerfile -ENV NV_CUDNN_VERSION=9.5.1.17-1 -ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12-${NV_CUDNN_VERSION} - -LABEL com.nvidia.cudnn.version="${NV_CUDNN_VERSION}" - -RUN yum install -y \ - ${NV_CUDNN_PACKAGE} \ - && yum clean all \ - && rm -rf /var/cache/yum/* - -# Set this flag so that libraries can find the location of CUDA -ENV XLA_FLAGS=--xla_gpu_cuda_data_dir=/usr/local/cuda - -# hdf5 is needed for h5py -RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \ - dnf install -y hdf5-devel && \ - dnf clean all - -# Restore notebook user workspace -USER 1001 -WORKDIR /opt/app-root/src - -############################ -# cuda-runtime-tensorflow # -############################ -FROM cuda-base AS cuda-runtime-tensorflow - -ARG TENSORFLOW_SOURCE_CODE=runtimes/tensorflow/ubi9-python-3.12 - -WORKDIR /opt/app-root/bin - -# Install Python packages from Pipfile.lock -COPY ${TENSORFLOW_SOURCE_CODE}/Pipfile.lock ./ -# Copy Elyra dependencies for air-gapped enviroment -COPY ${TENSORFLOW_SOURCE_CODE}/utils ./utils/ - -RUN echo "Installing softwares and packages" && \ - micropipenv install && \ - rm -f ./Pipfile.lock && \ - # Fix permissions to support pip in Openshift environments \ - chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \ - fix-permissions /opt/app-root -P - -WORKDIR /opt/app-root/src - -LABEL name="rhoai/odh-pipeline-runtime-tensorflow-cuda-py312-rhel9" \ - com.redhat.component="odh-pipeline-runtime-tensorflow-cuda-py312-rhel9" \ - io.k8s.display-name="odh-pipeline-runtime-tensorflow-cuda-py312-rhel9" \ - summary="Runtime CUDA tensorflow notebook image for ODH notebooks" \ - description="Runtime CUDA tensorflow notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - io.k8s.description="Runtime CUDA tensorflow notebook image with base Python 3.12 builder image based on UBI9 for ODH notebooks" \ - com.redhat.license_terms="https://www.redhat.com/licenses/Red_Hat_Standard_EULA_20191108.pdf"