gemma-api / Dockerfile
ChoruYt's picture
Update Dockerfile
5e81c6f verified
Raw
History Blame Contribute Delete
1.25 kB
FROM python:3.11-slim
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends gcc libc6-dev && rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install Python dependencies
RUN pip install --no-cache-dir flask flask-cors Pillow litert-lm huggingface_hub
# Create dummy Vulkan library to satisfy litert-lm on CPU
RUN printf 'void vkGetInstanceProcAddr(){}\nvoid vkCreateInstance(){}\nvoid vkDestroyInstance(){}\nvoid vkEnumeratePhysicalDevices(){}\nvoid vkGetDeviceProcAddr(){}' > /tmp/vk.c \
&& gcc -shared -fPIC -o /app/libvulkan.so.1 /tmp/vk.c \
&& rm /tmp/vk.c
# Create model directory
RUN mkdir -p /app/models/gemma
# --- KEY FIX: Updated 'hf download' to fetch the 12B model ---
RUN hf download litert-community/gemma-4-E2B-it-litert-lm gemma-4-E2B-it.litertlm --local-dir /app/models/gemma
# Copy the server code
COPY server.py .
# Setup permissions for Hugging Face Spaces (requires user 1000)
RUN useradd -m -u 1000 user
RUN chown -R user:user /app
USER user
# Set environment variables
ENV PORT=7860
ENV LD_LIBRARY_PATH=/app
# --- KEY FIX: Updated path to point to the 12B model file ---
ENV GEMMA_MODEL_PATH=/app/models/gemma/gemma-4-E2B-it.litertlm
EXPOSE 7860
CMD ["python3", "server.py"]