mimosa-ai / Dockerfile
vivekk3's picture
Upload folder using huggingface_hub
9c4b01e verified
FROM python:3.10-slim-bullseye
# Install necessary system packages
RUN apt-get update && apt-get install -y \
software-properties-common \
build-essential \
checkinstall \
cmake \
make \
pkg-config \
yasm \
git \
vim \
curl \
wget \
sudo \
apt-transport-https \
libcanberra-gtk-module \
libcanberra-gtk3-module \
dbus-x11 \
iputils-ping \
python3-dev \
python3-pip \
python3-setuptools \
libjpeg-dev \
libpng-dev \
libtiff5-dev \
libtiff-dev \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libdc1394-22-dev \
libxine2-dev \
libavfilter-dev \
libavutil-dev \
ffmpeg \
&& apt-get clean \
&& rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* \
&& apt-get -y autoremove
# Upgrade pip and install Python packages
RUN pip install --no-cache-dir --upgrade pip \
&& pip install --no-cache-dir torch==2.2.0 torchvision==0.17.0 \
&& pip install --no-cache-dir poetry==1.8.3 tzdata==2024.1 \
&& pip install --no-cache-dir gradio==4.41.0 \
&& pip install --no-cache-dir opencv-python
# Set up non-root user
RUN useradd -m -u 1000 user
USER user
# Set working directory and copy application files
WORKDIR /app
COPY --chown=user:user . /app
COPY --chown=user:user pyproject.toml script.sh download_models.sh requirements.txt ./
RUN chmod +x script.sh download_models.sh
# Run scripts and install dependencies
USER root
RUN ./script.sh \
&& poetry config virtualenvs.create false \
&& ./download_models.sh \
&& poetry install --no-interaction --no-ansi --no-dev \
&& pip cache purge \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Set user back to non-root and expose port
USER user
EXPOSE 7860
# Start the application
CMD ["python", "grad.py"]