|
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 |
|
|
|
|
|
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/ |
|
|
|
|
|
|
|
RUN useradd -m -u 1000 user |
|
RUN adduser user miniconda |
|
|
|
|
|
USER user |
|
|
|
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 |
|
|
|
WORKDIR $HOME/app |
|
|
|
ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/code/miniconda/lib" |
|
|
|
|
|
COPY --chown=user . $HOME/app |
|
|
|
CMD ["python3", "app.py"] |