ARG BASE_IMAGE=nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04
FROM ${BASE_IMAGE} as dev-base

WORKDIR /
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
ENV DEBIAN_FRONTEND noninteractive\
    SHELL=/bin/bash

RUN apt-get update --yes && \
    # - apt-get upgrade is run to patch known vulnerabilities in apt-get packages as
    #   the ubuntu base image is rebuilt too seldom sometimes (less than once a month)
    apt-get upgrade --yes && \
    apt install --yes --no-install-recommends \
    build-essential \
    ca-certificates \
    git \
    git-lfs \
    wget \
    curl \
    bash \
    libgl1 \
    software-properties-common \
    openssh-server && \
    apt-get clean && rm -rf /var/lib/apt/lists/* && \
    echo "en_US.UTF-8 UTF-8" > /etc/locale.gen

RUN apt-key del 7fa2af80 && \
    apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub

RUN add-apt-repository ppa:deadsnakes/ppa && \
    apt-get install python3.10 python3.10-dev python3.10-venv python3-pip -y --no-install-recommends && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

RUN pip install --upgrade pip && \
    pip install huggingface-hub && \
    pip install diffusers && \
    pip install safetensors && \
    pip install torch torchvision torchaudio --extra-index-url=https://download.pytorch.org/whl/cu116 && \
    pip install bitsandbytes && \
    pip install transformers accelerate xformers triton && \
    pip install runpod

RUN mkdir /workspace
WORKDIR /workspace

COPY . /workspace/
#ADD start.sh /workspace/

ARG MODEL_URL
ENV MODEL_URL=${MODEL_URL}

RUN python3 model_fetcher.py --model_url=${MODEL_URL} && \
    echo "Model URL: $MODEL_URL"
#RUN wget -O model.safetensors https://civitai.com/api/download/models/5616
# PFG: https://civitai.com/api/download/models/1316
# Hassanblend: https://civitai.com/api/download/models/4635

CMD python3 -u runpod_infer.py --model_url="$MODEL_URL"