leinier310 commited on
Commit
5446cd5
verified
1 Parent(s): c49c8bd

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +54 -0
Dockerfile ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # HUGGINGFACE SPACES - DOCKER
2
+ FROM python:3.11-slim
3
+
4
+ # Argumento: URL directa de descarga (usar "resolve", no "blob")
5
+ ARG MODEL_URL="https://huggingface.co/microsoft/bitnet-b1.58-2B-4T-gguf/resolve/main/ggml-model-i2_s.gguf?download=true"
6
+
7
+ # Paquetes necesarios: aria2 (descarga paralela), xz-utils (compresi贸n), coreutils (env vars/du), ca-certificates
8
+ RUN apt-get update && \
9
+ apt-get install -y --no-install-recommends \
10
+ aria2 xz-utils ca-certificates && \
11
+ rm -rf /var/lib/apt/lists/*
12
+
13
+ # Directorio de trabajo y datos
14
+ WORKDIR /workspace
15
+ RUN mkdir -p /data
16
+
17
+ # Script de arranque: descarga, comprime, sirve el server
18
+ # - Usa aria2c con 16 conexiones y segmento 1MiB
19
+ # - Comprime con xz al m谩ximo (-9e) y todos los hilos (-T0) a trav茅s de tar -I
20
+ # - Publica el archivo por HTTP en /data
21
+ RUN printf '%s\n' \
22
+ '#!/usr/bin/env bash' \
23
+ 'set -euo pipefail' \
24
+ 'MODEL_URL="${MODEL_URL:-}"' \
25
+ 'OUT_DIR="/data"' \
26
+ 'RAW="${OUT_DIR}/ggml-model-i2_s.gguf"' \
27
+ 'TXZ="${OUT_DIR}/ggml-model-i2_s.gguf.tar.xz"' \
28
+ '' \
29
+ 'echo "[1/3] Descargando modelo..."' \
30
+ 'if [ ! -s "${RAW}" ]; then' \
31
+ ' aria2c -x16 -s16 -k1M -o "$(basename "${RAW}")" -d "${OUT_DIR}" "${MODEL_URL}"' \
32
+ 'else' \
33
+ ' echo "Saltando descarga: existe ${RAW}"' \
34
+ 'fi' \
35
+ '' \
36
+ 'echo "[2/3] Comprimiendo a tar.xz (m谩xima compresi贸n, multihilo)..."' \
37
+ 'if [ ! -s "${TXZ}" ]; then' \
38
+ ' # Nota: -I permite pasar el pipeline completo de xz; -9e = m谩ximo, -T0 = todos los hilos' \
39
+ ' tar -C "${OUT_DIR}" -c -f "${TXZ}" -I "xz -9e -T0" "$(basename "${RAW}")"' \
40
+ 'else' \
41
+ ' echo "Saltando compresi贸n: existe ${TXZ}"' \
42
+ 'fi' \
43
+ '' \
44
+ 'echo "[3/3] Tama帽os:"' \
45
+ 'du -h "${RAW}" || true' \
46
+ 'du -h "${TXZ}" || true' \
47
+ '' \
48
+ 'echo "Listo. Sirviendo /data en http://0.0.0.0:7860/"' \
49
+ 'cd "${OUT_DIR}"' \
50
+ 'python -m http.server 7860' \
51
+ > /usr/local/bin/run.sh && chmod +x /usr/local/bin/run.sh
52
+
53
+ EXPOSE 7860
54
+ CMD ["/usr/local/bin/run.sh"]