Melika Kheirieh commited on
Commit
24a500b
·
1 Parent(s): cdbc665

fix(docker): minimal image + explicit ENTRYPOINT to run start.py on PORT 7860

Browse files
Files changed (1) hide show
  1. Dockerfile +9 -47
Dockerfile CHANGED
@@ -1,57 +1,19 @@
1
- # ---------- Stage 1: Build wheels ----------
2
- FROM python:3.12-slim AS builder
3
 
4
- ENV PIP_NO_CACHE_DIR=1 \
5
- PYTHONDONTWRITEBYTECODE=1 \
6
- PYTHONUNBUFFERED=1
7
-
8
- WORKDIR /build
9
-
10
- RUN apt-get update && apt-get install -y --no-install-recommends \
11
- build-essential \
12
- && rm -rf /var/lib/apt/lists/*
13
-
14
- COPY requirements.txt .
15
- RUN pip install --upgrade pip && \
16
- pip wheel --wheel-dir /wheels -r requirements.txt
17
-
18
- # ---------- Stage 2: Runtime ----------
19
- FROM python:3.12-slim AS runtime
20
-
21
- ENV PIP_NO_CACHE_DIR=1 \
22
- PYTHONDONTWRITEBYTECODE=1 \
23
  PYTHONUNBUFFERED=1 \
24
- PYTHONPATH=/app
 
 
25
 
26
  WORKDIR /app
 
27
 
28
- RUN apt-get update && apt-get install -y --no-install-recommends \
29
- ca-certificates && rm -rf /var/lib/apt/lists/*
30
-
31
- RUN useradd -m appuser
32
-
33
- COPY --from=builder /wheels /wheels
34
- COPY requirements.txt .
35
- RUN pip install --no-cache-dir --find-links=/wheels -r requirements.txt && \
36
- rm -rf /wheels
37
-
38
- COPY . .
39
-
40
- RUN chown -R appuser:appuser /app
41
-
42
- USER appuser
43
-
44
- ENV GRADIO_SERVER_NAME=0.0.0.0 \
45
- GRADIO_SERVER_PORT=7860 \
46
- USE_MOCK=1
47
-
48
- # Healthcheck ensures Gradio frontend is alive
49
- HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
50
- CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:7860', timeout=2)"
51
 
52
- # Hugging Face Spaces expect public app on port 7860
53
- ENV PORT=7860
54
  EXPOSE 7860
55
 
 
56
  ENTRYPOINT []
 
57
  CMD ["python", "-u", "start.py"]
 
1
+ FROM python:3.12-slim
 
2
 
3
+ ENV PYTHONDONTWRITEBYTECODE=1 \
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  PYTHONUNBUFFERED=1 \
5
+ PIP_NO_CACHE_DIR=1 \
6
+ PORT=7860 \
7
+ GRADIO_SERVER_NAME=0.0.0.0
8
 
9
  WORKDIR /app
10
+ COPY . /app
11
 
12
+ RUN pip install --no-cache-dir -U pip && pip install --no-cache-dir -r requirements.txt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
 
 
14
  EXPOSE 7860
15
 
16
+ # Ensure base image ENTRYPOINT (if any) doesn't override ours
17
  ENTRYPOINT []
18
+ RUN echo "=== REBUILD $(date) ==="
19
  CMD ["python", "-u", "start.py"]