caarleexx commited on
Commit
f8e75a9
Β·
verified Β·
1 Parent(s): 4996876

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -56
Dockerfile CHANGED
@@ -1,71 +1,34 @@
1
- # ╔══════════════════════════════════════════════════════════════╗
2
- # β•‘ STAGE 1 β€” builder: baixa + converte modelo (com torch) β•‘
3
- # β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
4
- FROM python:3.11-slim AS builder
5
-
6
- WORKDIR /build
7
-
8
- RUN apt-get update && apt-get install -y --no-install-recommends \
9
- build-essential git curl patchelf \
10
- && rm -rf /var/lib/apt/lists/*
11
-
12
- # Torch CPU separado (evita conflito de index-url)
13
- RUN pip install --no-cache-dir \
14
- torch==2.3.0 \
15
- --index-url https://download.pytorch.org/whl/cpu
16
-
17
- # Resto das deps de build
18
- COPY requirements-build.txt .
19
- RUN pip install --no-cache-dir -r requirements-build.txt && \
20
- find /usr/local/lib/python3.11/site-packages/ \
21
- -name "libctranslate2*.so*" \
22
- -print0 | xargs -0 -r patchelf --clear-execstack
23
-
24
- COPY app/download_model.py ./app/
25
-
26
- ENV CT2_MODEL_DIR=/build/ct2_model \
27
- TOKENIZER_DIR=/build/tokenizer \
28
- TOKENIZER_ID=google/flan-t5-xl \
29
- QUANTIZATION=int8 \
30
- HF_HOME=/build/.cache
31
-
32
- RUN python app/download_model.py
33
-
34
- # ╔══════════════════════════════════════════════════════════════╗
35
- # β•‘ STAGE 2 β€” runtime: serve API (sem torch, imagem leve) β•‘
36
- # β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
37
  FROM python:3.11-slim
38
 
39
- ENV PORT=7860 \
40
- PYTHONDONTWRITEBYTECODE=1 \
41
- PYTHONUNBUFFERED=1 \
42
- CT2_MODEL_DIR=/app/ct2_model \
43
- TOKENIZER_DIR=/app/tokenizer \
44
- CT2_MODEL_ID=google/flan-t5-xl \
45
- MAX_NEW_TOKENS=1024 \
46
- MAX_INPUT_LEN=512 \
47
- INTER_THREADS=2 \
48
- INTRA_THREADS=2
49
 
50
  WORKDIR /app
51
 
52
  RUN apt-get update && apt-get install -y --no-install-recommends \
53
- patchelf \
54
  && rm -rf /var/lib/apt/lists/*
55
 
 
 
 
 
 
56
  COPY requirements.txt .
57
- RUN pip install --no-cache-dir -r requirements.txt && \
58
- find /usr/local/lib/python3.11/site-packages/ \
59
- -name "libctranslate2*.so*" \
60
- -print0 | xargs -0 -r patchelf --clear-execstack
61
 
62
- # Copia apenas os artefatos do stage 1 (sem torch, sem modelo original)
63
- COPY --from=builder /build/ct2_model /app/ct2_model
64
- COPY --from=builder /build/tokenizer /app/tokenizer
65
 
66
- COPY app/main.py ./app/
 
 
67
 
68
- RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
69
  USER appuser
70
 
71
  EXPOSE 7860
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  FROM python:3.11-slim
2
 
3
+ ENV PORT=7860 \
4
+ PYTHONDONTWRITEBYTECODE=1 \
5
+ PYTHONUNBUFFERED=1 \
6
+ HF_HOME=/app/.cache \
7
+ TRANSFORMERS_CACHE=/app/.cache \
8
+ MODEL_ID=google/flan-t5-large \
9
+ MAX_NEW_TOKENS=1024 \
10
+ MAX_INPUT_LEN=512
 
 
11
 
12
  WORKDIR /app
13
 
14
  RUN apt-get update && apt-get install -y --no-install-recommends \
15
+ build-essential curl \
16
  && rm -rf /var/lib/apt/lists/*
17
 
18
+ # Torch CPU-only separado (evita baixar 2GB+ da versΓ£o CUDA)
19
+ RUN pip install --no-cache-dir \
20
+ torch \
21
+ --index-url https://download.pytorch.org/whl/cpu
22
+
23
  COPY requirements.txt .
24
+ RUN pip install --no-cache-dir -r requirements.txt
 
 
 
25
 
26
+ COPY app/ ./app/
 
 
27
 
28
+ RUN useradd -m -u 1000 appuser && \
29
+ mkdir -p /app/.cache && \
30
+ chown -R appuser:appuser /app
31
 
 
32
  USER appuser
33
 
34
  EXPOSE 7860