# syntax=docker/dockerfile:1.2
ARG DEBIAN_FRONTEND=noninteractive
ARG PYTHON_IMAGE="python:3.8-slim-bullseye"

FROM $PYTHON_IMAGE AS builder-image

ARG PIPELINE_PATH

RUN echo 'export PS1="\[\e[36m\]goldilox>\[\e[m\] "' >> /root/.bashrc

ENV PYTHONUNBUFFERED=TRUE PYTHONDONTWRITEBYTECODE=TRUE PYTHONUNBUFFERED=1  PYTHONIOENCODING=UTF-8

RUN apt-get update && apt update && apt install -y git gcc python3-pip

RUN pip install -U pip && pip3 install --no-cache-dir goldilox==0.0.2a3  pydantic fastapi click vaex

ENV LOCAL_PIPELINE_PATH "/home/pipeline.pkl"

ENV REQUIRMENTS "/home/requirements.txt"

COPY $PIPELINE_PATH $LOCAL_PIPELINE_PATH

RUN glx freeze $LOCAL_PIPELINE_PATH REQUIRMENTS

RUN pip3 install -r REQUIRMENTS

RUN echo '#!/bin/bash' >> /home/args.sh && echo '"$@"' >> /home/args.sh

EXPOSE 8000

CMD ["glx", "serve", "/home/pipeline.pkl", "/home/args.sh"]
