santanche's picture
fix (docker): ollama install
78abb48
FROM python:3.11-slim
# Set working directory
WORKDIR /app
# Install system dependencies including zstd for Ollama
RUN apt-get update && apt-get install -y \
curl \
zstd \
&& rm -rf /var/lib/apt/lists/*
# Install Ollama
RUN curl -fsSL https://ollama.ai/install.sh | sh
# Copy requirements first for better caching
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Copy application files
COPY server.py .
COPY static/ ./static/
# Create directory for Ollama models
RUN mkdir -p /root/.ollama
# Expose port (HuggingFace uses 7860)
EXPOSE 7860
# Set environment variables
ENV OLLAMA_HOST=0.0.0.0:11434
ENV PYTHONUNBUFFERED=1
# Create startup script
RUN echo '#!/bin/bash\n\
set -e\n\
\n\
echo "Starting Ollama server..."\n\
ollama serve &\n\
OLLAMA_PID=$!\n\
\n\
echo "Waiting for Ollama to be ready..."\n\
sleep 10\n\
\n\
echo "Pulling phi3 model (this may take several minutes)..."\n\
ollama pull phi3\n\
\n\
echo "Model ready! Starting FastAPI server..."\n\
uvicorn server:app --host 0.0.0.0 --port 7860\n\
' > /app/start.sh && chmod +x /app/start.sh
# Run the startup script
CMD ["/app/start.sh"]