FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime

# Install necessary packages
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential python3-venv && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Create virtual environment and install dependencies
RUN python3 -m venv /opt/myenv && \
/opt/myenv/bin/pip install --no-cache-dir Flask matplotlib scikit-learn transformers pandas sentence_transformers && \
/opt/myenv/bin/pip install --no-cache-dir --upgrade setuptools wheel

ENV PATH="/opt/myenv/bin:$PATH"

WORKDIR /app
COPY . /app

RUN sudo docker system prune -a -f --volumes
RUN sudo docker container prune -f
RUN sudo docker network prune -f
RUN sudo docker image prune -a -f
RUN sudo docker builder prune -f
RUN sudo apt-get clean
RUN sudo rm -rf /var/lib/apt/lists/*
RUN sudo rm -rf /tmp/*
RUN sudo journalctl --vacuum-time=1s
RUN df -h
RUN sudo docker builder prune -f

# Setting permissions and cleaning
RUN chown -R www-data:www-data /app && chmod -R 755 /app

EXPOSE 5000

CMD ["/opt/myenv/bin/python", "/app/api.py"]