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[cli]" # Create dummy Vulkan library to satisfy litert-lm on CPU RUN printf '%s\n' \ 'void vkGetInstanceProcAddr(){}' \ 'void vkCreateInstance(){}' \ 'void vkDestroyInstance(){}' \ 'void vkEnumeratePhysicalDevices(){}' \ 'void 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/qwen # Download Qwen 3.5 2B LiteRT-LM (community conversion) RUN huggingface-cli download paulsp94/Qwen3.5-2B-LiteRT-LM model.litertlm \ --local-dir /app/models/qwen # Copy the server code COPY server.py . # Setup permissions for Hugging Face Spaces (requires user 1000) RUN useradd -m -u 1000 user && chown -R user:user /app USER user # Environment ENV PORT=7860 \ LD_LIBRARY_PATH=/app \ GEMMA_MODEL_PATH=/app/models/qwen/model.litertlm \ HF_HOME=/app/.cache/huggingface EXPOSE 7860 CMD ["python3", "server.py"]