From 7fcc6a62b1762fda0494285d42f39d7ddcb88e5d Mon Sep 17 00:00:00 2001 From: Carlos Paniagua Date: Sat, 17 Feb 2024 02:19:10 -0500 Subject: [PATCH] Update Dockerfile to use Python 3.11 image and install required packages --- Dockerfile | 60 ++++++++++++++++-------------------------------------- 1 file changed, 17 insertions(+), 43 deletions(-) diff --git a/Dockerfile b/Dockerfile index dd0de0d7..466445eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,48 +1,22 @@ -# Using the ubuntu:20.04 base image for compatibility with the ICESat-2 SlideRule software -# Some code to add conda from https://github.com/conda-forge/miniforge-images/blob/master/ubuntu/Dockerfile -# This file builds the docker image for the ICESat-2 tracks project. Includes the ICESat-2 SlideRule tool, conda, and the python3.11 environment for the project with dependencies provided in the environment_small.yml file. -FROM ubuntu:20.04 -ARG DEBIAN_FRONTEND=noninteractive -ARG MINIFORGE_NAME=Miniforge3 -ARG MINIFORGE_VERSION=23.3.1-0 -ARG TARGETPLATFORM +# Use the official Python 3.11 image from the Docker Hub +FROM python:3.11 -ENV CONDA_DIR=/opt/conda -ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 -ENV PATH=${CONDA_DIR}/bin:${PATH} -ENV ENVNAME=2021-icesat2-tracks -RUN apt-get update && \ - apt-get install -y git curl wget +# Update the system and install the packages +RUN apt-get update && apt-get install -y \ + openmpi-bin \ + openmpi-doc \ + libopenmpi-dev -# Install sliderule dependencies -RUN apt-get install -y build-essential libreadline-dev liblua5.3-dev zlib1g-dev cmake -RUN git clone https://github.com/ICESat2-SlideRule/sliderule.git -WORKDIR /sliderule/ -RUN make config && \ - make && \ - make install +# Set the working directory to /app +WORKDIR /app -# Install conda -RUN apt-get update > /dev/null && \ - apt-get install --no-install-recommends --yes \ - bzip2 ca-certificates \ - tini \ - > /dev/null && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* && \ - wget --no-hsts --quiet https://github.com/conda-forge/miniforge/releases/download/${MINIFORGE_VERSION}/${MINIFORGE_NAME}-${MINIFORGE_VERSION}-Linux-$(uname -m).sh -O /tmp/miniforge.sh && \ - /bin/bash /tmp/miniforge.sh -b -p ${CONDA_DIR} && \ - rm /tmp/miniforge.sh && \ - conda clean --tarballs --index-cache --packages --yes && \ - find ${CONDA_DIR} -follow -type f -name '*.a' -delete && \ - find ${CONDA_DIR} -follow -type f -name '*.pyc' -delete && \ - conda clean --force-pkgs-dirs --all --yes && \ - echo ". ${CONDA_DIR}/etc/profile.d/conda.sh && conda activate base" >> /etc/skel/.bashrc && \ - echo ". ${CONDA_DIR}/etc/profile.d/conda.sh && conda activate base" >> ~/.bashrc +# Copy the current directory contents into the container at /app +COPY . /app -# Install conda environment -COPY environment_small.yml /tmp/environment.yml -RUN mamba env create -f /tmp/environment.yml +# Create the output directory +RUN mkdir -p /app/output -ENTRYPOINT ["tini", "--"] -CMD ["/bin/bash"] +# Install any needed packages specified in pyproject.toml +RUN pip install . + +CMD ["/bin/bash"] \ No newline at end of file