Spaces:
Sleeping
Sleeping
# Use the official Python image from the Docker Hub | |
FROM python:3.12-slim | |
RUN if id -u 1000 &> /dev/null; then \ | |
uid=$(shuf -i 1001-65535 -n 1) \ | |
&& useradd -m -u $uid user; \ | |
else \ | |
useradd -m -u 1000 user; \ | |
fi | |
# Set the working directory inside the container | |
# install apt dependencies | |
RUN apt-get update && apt-get install -y \ | |
build-essential \ | |
libpq-dev \ | |
libffi-dev \ | |
libssl-dev \ | |
libxml2-dev \ | |
libxslt1-dev \ | |
zlib1g-dev \ | |
libjpeg-dev \ | |
libfreetype6-dev \ | |
liblcms2-dev \ | |
libopenjp2-7-dev \ | |
libtiff5-dev \ | |
libwebp-dev \ | |
libharfbuzz-dev \ | |
libfribidi-dev \ | |
tcl8.6-dev \ | |
tk8.6-dev \ | |
python3-tk \ | |
python3-dev \ | |
python3-pip \ | |
python3-setuptools \ | |
python3-wheel \ | |
python3-cffi \ | |
python3-cryptography \ | |
python3-openssl \ | |
python3-lxml \ | |
python3-pillow \ | |
python3-numpy \ | |
python3-scipy \ | |
python3-matplotlib \ | |
python3-pandas \ | |
python3-sqlalchemy \ | |
python3-psycopg2 \ | |
python3-redis \ | |
python3-requests \ | |
python3-flask \ | |
python3-flask-cors \ | |
python3-flask-restful | |
# Set the working directory in the container | |
WORKDIR /app | |
# Copy the requirements.txt file into the container at /app | |
COPY --chown=user requirements.txt requirements.txt | |
# Install the dependencies | |
RUN pip install --no-cache-dir -r requirements.txt | |
# Copy the rest of the application code into the container at /app | |
COPY --chown=user . . | |
USER user | |
# Set environment variables for Flask | |
ENV FLASK_APP=server.py | |
ENV FLASK_RUN_HOST=0.0.0.0 | |
ENV FLASK_RUN_PORT=7860 | |
# Expose port 7860 to the outside world | |
EXPOSE 7860 | |
# Run the application | |
CMD ["python3", "server.py"] | |