FROM ubuntu:18.04 RUN apt-get update && apt-get install --no-install-recommends -y \ build-essential \ python3.8 \ python3-pip \ python3-setuptools \ git \ wget \ && apt-get clean && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y WORKDIR /code # add conda RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -P /code/ RUN chmod 777 /code/Miniconda3-latest-Linux-x86_64.sh RUN /code/Miniconda3-latest-Linux-x86_64.sh -b -p /code/miniconda ENV PATH="/code/miniconda/bin:${PATH}" RUN groupadd miniconda RUN chgrp -R miniconda /code/miniconda/ RUN chmod 770 -R /code/miniconda/ # Set up a new user named "user" with user ID 1000 RUN useradd -m -u 1000 user RUN adduser user miniconda # Switch to the "user" user USER user # Set home to the user's home directory ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ PYTHONPATH=$HOME/app \ PYTHONUNBUFFERED=1 \ GRADIO_ALLOW_FLAGGING=never \ GRADIO_NUM_PORTS=1 \ GRADIO_SERVER_NAME=0.0.0.0 \ GRADIO_THEME=huggingface \ SYSTEM=spaces RUN conda install python=3.8 RUN pip3 install setuptools-rust RUN conda install pillow -y RUN pip3 install torch==1.11.0+cu115 torchvision==0.12.0+cu115 --extra-index-url https://download.pytorch.org/whl/cu115 RUN pip3 install openmim RUN conda install -c conda-forge gradio -y WORKDIR /home/user RUN --mount=type=secret,id=git_token,mode=0444,required=true \ git clone --branch mmseg-only https://$(cat /run/secrets/git_token)@github.com/NASA-IMPACT/hls-foundation-os.git WORKDIR hls-foundation-os RUN pip3 install -e . RUN mim install mmcv-full==1.6.2 -f https://download.openmmlab.com/mmcv/dist/11.5/1.11.0/index.html RUN pip3 install rasterio scikit-image # Set the working directory to the user's home directory WORKDIR $HOME/app ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/code/miniconda/lib" # Copy the current directory contents into the container at $HOME/app setting the owner to the user COPY --chown=user . $HOME/app CMD ["python3", "app.py"]