Spaces:
Running
Running
ajaxwin commited on
Commit ·
144ccd7
1
Parent(s): 2031e4c
refactor Dockerfile and requirements.txt: update base image, consolidate dependencies, and adjust NLTK data download
Browse files- Dockerfile +33 -29
- requirements.txt +1 -2
Dockerfile
CHANGED
|
@@ -1,39 +1,43 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
#
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 12 |
-
build-essential \
|
| 13 |
-
curl \
|
| 14 |
&& rm -rf /var/lib/apt/lists/*
|
| 15 |
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
WORKDIR /app
|
| 25 |
|
| 26 |
-
|
| 27 |
-
COPY --
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
|
|
|
| 30 |
|
| 31 |
-
#
|
| 32 |
-
|
| 33 |
|
| 34 |
-
|
| 35 |
-
|
| 36 |
|
| 37 |
-
|
| 38 |
CMD ["python", "-m", "uvicorn", "server.app:app", \
|
| 39 |
"--host", "0.0.0.0", "--port", "7860", "--app-dir", "/app/env"]
|
|
|
|
| 1 |
+
ARG BASE_IMAGE=ghcr.io/meta-pytorch/openenv-base:latest
|
| 2 |
+
|
| 3 |
+
# -------- BUILDER STAGE --------
|
| 4 |
+
FROM python:3.12-slim AS builder
|
| 5 |
+
|
| 6 |
+
WORKDIR /app
|
| 7 |
+
|
| 8 |
+
RUN apt-get update && \
|
| 9 |
+
apt-get install -y --no-install-recommends \
|
| 10 |
+
git curl build-essential \
|
|
|
|
|
|
|
|
|
|
| 11 |
&& rm -rf /var/lib/apt/lists/*
|
| 12 |
|
| 13 |
+
COPY . /app/env
|
| 14 |
+
WORKDIR /app/env
|
| 15 |
+
|
| 16 |
+
# Install all deps except openenv (which lives in the base image)
|
| 17 |
+
RUN --mount=type=cache,target=/root/.cache/pip \
|
| 18 |
+
grep -v 'openenv' requirements.txt | \
|
| 19 |
+
pip install --target /app/packages -r /dev/stdin
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
# -------- RUNTIME STAGE --------
|
| 23 |
+
FROM ${BASE_IMAGE}
|
| 24 |
|
| 25 |
WORKDIR /app
|
| 26 |
|
| 27 |
+
COPY --from=builder /app/env /app/env
|
| 28 |
+
COPY --from=builder /app/packages /app/packages
|
| 29 |
+
|
| 30 |
+
# Download NLTK data
|
| 31 |
+
RUN PYTHONPATH=/app/packages python -m nltk.downloader \
|
| 32 |
+
wordnet omw-1.4 stopwords punkt \
|
| 33 |
+
averaged_perceptron_tagger_eng punkt_tab
|
| 34 |
|
| 35 |
+
# /app/packages first so our versions win; openenv comes from base image's site-packages
|
| 36 |
+
ENV PYTHONPATH="/app/packages:/app/env:$PYTHONPATH"
|
| 37 |
|
| 38 |
+
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
| 39 |
+
CMD curl -f http://localhost:7860/health || exit 1
|
| 40 |
|
| 41 |
+
ENTRYPOINT []
|
| 42 |
CMD ["python", "-m", "uvicorn", "server.app:app", \
|
| 43 |
"--host", "0.0.0.0", "--port", "7860", "--app-dir", "/app/env"]
|
requirements.txt
CHANGED
|
@@ -9,5 +9,4 @@ pandas==2.2.2
|
|
| 9 |
numpy==2.1.1
|
| 10 |
scikit-learn==1.5.0
|
| 11 |
sentence-transformers==3.0.1
|
| 12 |
-
nltk==3.9.4
|
| 13 |
-
openenv[core]>=0.2.0
|
|
|
|
| 9 |
numpy==2.1.1
|
| 10 |
scikit-learn==1.5.0
|
| 11 |
sentence-transformers==3.0.1
|
| 12 |
+
nltk==3.9.4
|
|
|