addgbf commited on
Commit
530c4d7
·
verified ·
1 Parent(s): ae59168

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +25 -24
Dockerfile CHANGED
@@ -1,51 +1,52 @@
1
  FROM python:3.11-slim
2
 
3
  ENV PIP_NO_CACHE_DIR=1 \
4
- PIP_DISABLE_PIP_VERSION_CHECK=1 \
5
  PYTHONDONTWRITEBYTECODE=1 \
6
  PYTHONUNBUFFERED=1 \
7
- PYTHONOPTIMIZE=1 \
8
- APP_CACHE=/app/.cache \
9
- XDG_CACHE_HOME=/app/.cache \
10
- HF_HOME=/app/.cache/hf \
11
- HUGGINGFACE_HUB_CACHE=/app/.cache/hf \
12
- TORCH_HOME=/app/.cache/torch \
13
- OPENCLIP_CACHE_DIR=/app/.cache/open_clip \
14
  HF_HUB_ENABLE_HF_TRANSFER=0 \
15
- TOKENIZERS_PARALLELISM=false \
16
  OMP_NUM_THREADS=2 \
17
  MKL_NUM_THREADS=2 \
18
- NUM_THREADS=2 \
19
- OMP_PROC_BIND=true \
20
- OMP_PLACES=cores
21
 
22
- # deps del sistema
23
  RUN apt-get update && apt-get install -y --no-install-recommends \
24
  build-essential git libgomp1 && \
25
  rm -rf /var/lib/apt/lists/*
26
 
27
  WORKDIR /app
28
 
29
- # preparar caches con permisos amplios
30
- RUN mkdir -p /app/.cache/hf /app/.cache/open_clip /app/.cache/torch && \
31
- chmod -R 777 /app/.cache
32
-
33
- # deps de proyecto
34
  COPY requirements.txt ./
35
- RUN pip install --upgrade pip && \
36
- pip install --no-cache-dir --prefer-binary -r requirements.txt
37
 
38
- # pytorch cpu oficial
39
  RUN pip install --no-cache-dir --index-url https://download.pytorch.org/whl/cpu \
40
  torch torchvision
41
 
42
- # codigo y embeddings
 
 
 
43
  COPY server1.py ./server1.py
44
  COPY text_embeddings_modelos_bigg.pt ./text_embeddings_modelos_bigg.pt
45
  COPY text_embeddings_bigg.pt ./text_embeddings_bigg.pt
46
 
 
 
 
 
 
 
 
 
47
  ENV PORT=7860
48
  EXPOSE 7860
49
 
50
- # uvicorn ligero; 1 worker para no duplicar el modelo
51
- CMD ["uvicorn", "server1:app", "--host", "0.0.0.0", "--port", "7860", "--loop", "uvloop", "--http", "httptools", "--workers", "1", "--no-server-header", "--no-access-log", "--log-level", "warning", "--timeout-keep-alive", "5"]
 
1
  FROM python:3.11-slim
2
 
3
  ENV PIP_NO_CACHE_DIR=1 \
 
4
  PYTHONDONTWRITEBYTECODE=1 \
5
  PYTHONUNBUFFERED=1 \
6
+ APP_CACHE=/tmp/appcache \
7
+ XDG_CACHE_HOME=/tmp/appcache \
8
+ HF_HOME=/tmp/appcache/hf \
9
+ HUGGINGFACE_HUB_CACHE=/tmp/appcache/hf \
10
+ TORCH_HOME=/tmp/appcache/torch \
11
+ OPENCLIP_CACHE_DIR=/tmp/appcache/open_clip \
 
12
  HF_HUB_ENABLE_HF_TRANSFER=0 \
 
13
  OMP_NUM_THREADS=2 \
14
  MKL_NUM_THREADS=2 \
15
+ NUM_THREADS=2
 
 
16
 
17
+ # deps del sistema: OpenMP y build tools
18
  RUN apt-get update && apt-get install -y --no-install-recommends \
19
  build-essential git libgomp1 && \
20
  rm -rf /var/lib/apt/lists/*
21
 
22
  WORKDIR /app
23
 
24
+ # deps de proyecto (ligeras)
 
 
 
 
25
  COPY requirements.txt ./
26
+ RUN pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt
 
27
 
28
+ # PyTorch CPU wheels oficiales
29
  RUN pip install --no-cache-dir --index-url https://download.pytorch.org/whl/cpu \
30
  torch torchvision
31
 
32
+ # (opcional) asegurar que open_clip este instalado (si no viene por reqs)
33
+ # RUN pip install --no-cache-dir open_clip_torch
34
+
35
+ # copiar codigo y embeddings
36
  COPY server1.py ./server1.py
37
  COPY text_embeddings_modelos_bigg.pt ./text_embeddings_modelos_bigg.pt
38
  COPY text_embeddings_bigg.pt ./text_embeddings_bigg.pt
39
 
40
+ # (opcional) precarga ligera para evitar cold-start de dependencias
41
+ # No hace forward pesado ni cambia precision
42
+ # RUN python - <<'PY'\n\
43
+ # import open_clip\n\
44
+ # open_clip.create_model_and_transforms('hf-hub:timm/PE-Core-bigG-14-448', pretrained=None)\n\
45
+ # print('open_clip model meta loaded')\n\
46
+ # PY
47
+
48
  ENV PORT=7860
49
  EXPOSE 7860
50
 
51
+ # uvloop + httptools (vienen con uvicorn[standard]); 1 worker evita duplicar el modelo
52
+ CMD ["uvicorn", "server1:app", "--host", "0.0.0.0", "--port", "7860", "--loop", "uvloop", "--http", "httptools", "--workers", "1", "--no-server-header", "--timeout-keep-alive", "5"]