# Use an official Python runtime as a parent image FROM python:3.14-slim # Set environment variables ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 # Set the working directory in the container WORKDIR /app # Install dependencies COPY requirements.txt . RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* RUN pip install --no-cache-dir -r requirements.txt # Non-root user for celery workers/beat. UID matches typical host (1000) so # bind-mounted volumes (./backend, ./legacy, media/) stay writable. Override # by rebuilding with --build-arg APP_UID= if your host differs. ARG APP_UID=1000 ARG APP_GID=1000 RUN groupadd -g ${APP_GID} app && useradd -u ${APP_UID} -g app -m -s /bin/bash app # Copy the rest of the backend code COPY . . # Expose the port the app runs on EXPOSE 8000 # Run the entrypoint script ENTRYPOINT ["./entrypoint.sh"]