File size: 2,212 Bytes
5446cd5
 
c85b3d3
5446cd5
 
0e3de8f
5446cd5
1aab428
 
1997cbd
 
5446cd5
1997cbd
 
 
0ea8c60
2c33829
 
 
1997cbd
2c33829
 
 
1997cbd
2c33829
 
 
1997cbd
2c33829
0e3de8f
2c33829
0e3de8f
 
2c33829
0e3de8f
2c33829
1997cbd
5446cd5
 
1997cbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
FROM python:3.11-slim

# Instala herramientas necesarias
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        xz-utils zstd wget && \
    rm -rf /var/lib/apt/lists/*
RUN mkdir -p /app && chown -R 1000:1000 /app
USER 1000
# Carpeta de trabajo fija y limpia
WORKDIR /app

# Script de arranque con logging y compresión
RUN echo '#!/usr/bin/env python3' > /app/run.py && \
    echo 'import os, time' >> /app/run.py && \
#    echo 'def log(msg): print(f"[{time.strftime(\"%H:%M:%S\")}] {msg}")' >> /app/run.py && \
#    echo 'log("===== BitNet GGUF Downloader =====")' >> /app/run.py && \
    #echo 'log("[1/4] Descargando modelo con wget...")' >> /app/run.py && \
#    echo 't0 = time.time()' >> /app/run.py && \
    echo 'os.system("wget -O ggml-model-i2_s.gguf https://huggingface.co/microsoft/bitnet-b1.58-2B-4T-gguf/resolve/main/ggml-model-i2_s.gguf")' >> /app/run.py && \
    #echo 'log(f"Descarga completada ({round(time.time()-t0,1)}s)")' >> /app/run.py && \
    #echo 'log("[2/4] Comprimiendo con tar.xz...")' >> /app/run.py && \
    #echo 't1 = time.time()' >> /app/run.py && \
    echo 'os.system("tar -c -f model.tar.xz -I \\"xz -9e -T0\\" ggml-model-i2_s.gguf")' >> /app/run.py && \
    #echo 'log(f"XZ listo ({round(time.time()-t1,1)}s)")' >> /app/run.py && \
    #echo 'log("[3/4] Comprimiendo con tar.zst...")' >> /app/run.py && \
    #echo 't2 = time.time()' >> /app/run.py && \
    echo 'os.system("tar -c -f model.tar.zst --zstd -I \\"zstd -19 -T0\\" ggml-model-i2_s.gguf")' >> /app/run.py && \
#    echo 'log(f"ZSTD listo ({round(time.time()-t2,1)}s)")' >> /app/run.py && \
    #echo 'log("[4/4] Comprimimos con RAR...")' >> /app/run.py && \
    #echo 't3 = time.time()' >> /app/run.py && \
    #echo 'os.system("rar a -ma5 model.rar ggml-model-i2_s.gguf")' >> /app/run.py && \
    #echo 'log(f"RAR listo ({round(time.time()-t3,1)}s)")' >> /app/run.py && \
    #echo 'log("Tamaños finales:")' >> /app/run.py && \
    echo 'os.system("du -h *.gguf *.xz *.zst")' >> /app/run.py && \
    #echo 'log("Servidor HTTP activo en puerto 7860")' >> /app/run.py && \
    echo 'os.system("python3 -m http.server 7860")' >> /app/run.py

EXPOSE 7860
CMD ["python3", "/app/run.py"]