Document_intelligence / Dockerfile
vettri06's picture
Rename app to Document_intelligence
039f7ec
Raw History Blame Contribute Delete
2.72 kB
FROM node:20-alpine AS frontend-builder
WORKDIR /frontend
COPY frontend/package*.json ./
RUN npm ci
COPY frontend ./
RUN npm run build
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1
WORKDIR /app
COPY requirements.txt ./
COPY doc_intelligence/requirements.txt ./doc_intelligence/requirements.txt
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY app.py README.md .env.example ./
COPY --from=frontend-builder /frontend/dist ./frontend/dist
COPY doc_intelligence/src ./doc_intelligence/src
COPY doc_intelligence/configs ./doc_intelligence/configs
COPY doc_intelligence/reports/classification_artifacts ./doc_intelligence/reports/classification_artifacts
# HF stores model artifacts in Git LFS. Resolve the real pickle during the
# image build so the runtime never attempts to unpickle an LFS pointer file.
RUN python -c "from urllib.request import urlretrieve; urlretrieve('https://huggingface.co/spaces/vettri06/Document_intelligence/resolve/main/doc_intelligence/reports/classification_artifacts/logistic_regression.pkl?download=true', '/app/doc_intelligence/reports/classification_artifacts/logistic_regression.pkl')"
COPY doc_intelligence/reports/best_model_card.md ./doc_intelligence/reports/best_model_card.md
COPY doc_intelligence/data/raw/invoice/ffcy0002.png ./doc_intelligence/data/raw/invoice/ffcy0002.png
COPY doc_intelligence/data/raw/invoice/fflb0108.png ./doc_intelligence/data/raw/invoice/fflb0108.png
COPY doc_intelligence/data/raw/receipt/cord_test-000_0.png ./doc_intelligence/data/raw/receipt/cord_test-000_0.png
COPY doc_intelligence/data/raw/receipt/cord_test-000_1.png ./doc_intelligence/data/raw/receipt/cord_test-000_1.png
COPY doc_intelligence/data/raw/application_form/funsd_0000971160.png ./doc_intelligence/data/raw/application_form/funsd_0000971160.png
COPY doc_intelligence/data/raw/application_form/funsd_0000989556.png ./doc_intelligence/data/raw/application_form/funsd_0000989556.png
# Resolve the bundled sample images from LFS as real image bytes as well.
RUN python -c "from urllib.request import urlretrieve; files=['doc_intelligence/data/raw/invoice/ffcy0002.png','doc_intelligence/data/raw/invoice/fflb0108.png','doc_intelligence/data/raw/receipt/cord_test-000_0.png','doc_intelligence/data/raw/receipt/cord_test-000_1.png','doc_intelligence/data/raw/application_form/funsd_0000971160.png','doc_intelligence/data/raw/application_form/funsd_0000989556.png']; base='https://huggingface.co/spaces/vettri06/Document_intelligence/resolve/main/'; [urlretrieve(base + path + '?download=true', '/app/' + path) for path in files]"
EXPOSE 7860
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]