| FROM python:3.11-slim |
|
|
| ENV PYTHONDONTWRITEBYTECODE=1 |
| ENV PYTHONUNBUFFERED=1 |
| ENV HF_HOME=/app/.cache/huggingface |
| ENV COMMUNITY_FORENSICS_REPO_PATH=/app/vendor/Community-Forensics |
| ENV COMMUNITY_FORENSICS_MODEL_ID=OwensLab/commfor-model-224 |
| ENV AI_IMAGE_DETECTOR_MODELS=community-forensics::OwensLab/commfor-model-224 |
| ENV MEDIA_DECISION_POLICY_PATH=/app/training/models/media-policy-v4.json |
| ENV VIDEO_ANALYSIS_MODE=adaptive |
| ENV VIDEO_KEYFRAME_MAX=64 |
| ENV VIDEO_WINDOW_MAX=8 |
| ENV IMAGE_TRANSFORMATION_CHECKS=true |
|
|
| WORKDIR /app |
|
|
| RUN apt-get update \ |
| && apt-get install -y --no-install-recommends git libgl1 libglib2.0-0 \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| COPY backend/requirements.txt /app/backend/requirements.txt |
| RUN pip install --no-cache-dir -r /app/backend/requirements.txt |
|
|
| RUN git clone https://github.com/JeongsooP/Community-Forensics.git /app/vendor/Community-Forensics \ |
| && git -C /app/vendor/Community-Forensics checkout ee5b71d43db0f3779e1edd64ee927b13f2dd6ad4 \ |
| && test "$(git -C /app/vendor/Community-Forensics rev-parse HEAD)" = "ee5b71d43db0f3779e1edd64ee927b13f2dd6ad4" \ |
| && rm -rf /app/vendor/Community-Forensics/.git |
|
|
| RUN python -c "import sys; sys.path.insert(0, '/app/vendor/Community-Forensics'); from models import ViTClassifier; ViTClassifier.from_pretrained('OwensLab/commfor-model-224', device='cpu')" |
|
|
| COPY backend /app/backend |
| COPY training/models /app/training/models |
|
|
| WORKDIR /app/backend |
|
|
| EXPOSE 7860 |
|
|
| CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |
|
|