liquiagent / Dockerfile
ramosdev's picture
Create Dockerfile
fc46c90 verified
Raw
History Blame Contribute Delete
2.1 kB
# ==========================================
# Etapa 1: Compilaci贸n de llama.cpp
# ==========================================
FROM ubuntu:22.04 AS builder
RUN apt-get update && apt-get install -y \
build-essential \
git \
cmake \
curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
# Clonar y compilar llama.cpp optimizado para CPU gen茅rica vCPU (Hugging Face)
RUN git clone https://github.com/ggerganov/llama.cpp.git && \
cd llama.cpp && \
cmake -B build -DGGML_NATIVE=OFF -DCMAKE_BUILD_TYPE=Release && \
cmake --build build --config Release -j $(nproc)
# ==========================================
# Etapa 2: Entorno de Ejecuci贸n Ligero
# ==========================================
FROM ubuntu:22.04 AS runtime
RUN apt-get update && apt-get install -y \
curl \
&& rm -rf /var/lib/apt/lists/*
# Requisito estricto de HF Spaces: Crear un usuario no-root con UID 1000
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
WORKDIR /home/user/app
# Copiar exclusivamente el binario del servidor desde la etapa de compilaci贸n
COPY --chown=user:user --from=builder /build/llama.cpp/build/bin/llama-server ./llama-server
# Descargar el modelo optimizado en formato GGUF durante el Build Time
# Nota: Usamos Qwen2.5-1.5B-Instruct (o 0.5B) por su brutal capacidad multiling眉e y velocidad instant谩nea en CPU.
# Puedes sustituir esta URL por cualquier modelo .gguf compatible (como las conversiones de Liquid LFM si est谩n mapeadas).
RUN curl -L -o model.gguf "https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf"
# Requisito estricto de HF Spaces: Exponer obligatoriamente el puerto 7860
EXPOSE 7860
# Configuraci贸n del motor de inferencia
# --host 0.0.0.0: Escuchar en todas las interfaces de red del contenedor
# --port 7860: Puerto requerido por Hugging Face
# -c 2048: Tama帽o de contexto optimizado (ahorra memoria y acelera el procesamiento del prompt)
CMD ["./llama-server", "--host", "0.0.0.0", "--port", "7860", "-m", "model.gguf", "-c", "2048"]