# Use an official Python 3.12 runtime as a parent image FROM python:3.12-slim # Set the working directory in the container WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ libgl1-mesa-glx \ libglib2.0-0 \ && rm -rf /var/lib/apt/lists/* # Install dill package RUN pip install dill # Copy the requirements.txt file into the container COPY requirements.txt /app/requirements.txt # Install the required Python packages RUN pip install --no-cache-dir -r /app/requirements.txt # Copy the rest of the application code into the container COPY . /app # Set environment variables ENV FLASK_APP=run.py ENV FLASK_ENV=production ENV YOLO_CONFIG_DIR=/app ENV YOLO_CONFIG_DIR=/app ENV MPLCONFIGDIR=/tmp # Set permissions for the application directory RUN chmod -R 777 /app # Expose the port the app runs on EXPOSE 7860 # Define the command to run the application CMD ["gunicorn", "--bind", "0.0.0.0:7860", "run:app"]