johnli-persona-api / Dockerfile
JohnLicode's picture
Update Dockerfile
5ec1ef2 verified
FROM ollama/ollama:latest
# 1. Install dependencies
RUN apt-get update && apt-get install -y curl bash python3 python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
# 2. Download your model
RUN curl -L "https://huggingface.co/JohnLicode/johnli-qwen-gguf/resolve/main/johnli-qwen.gguf?download=true" -o /root/johnli-qwen.gguf
# 3. Create the Modelfile
RUN echo 'FROM /root/johnli-qwen.gguf' > /root/Modelfile && \
echo 'SYSTEM "You are JohnLi digital persona. Respond as John Lenard Libertad - a 22-year-old developer who follows Stoic philosophy. Be friendly, professional, and concise."' >> /root/Modelfile && \
echo 'PARAMETER temperature 0.7' >> /root/Modelfile && \
echo 'PARAMETER num_predict 256' >> /root/Modelfile
# 4. Setup Python virtual environment and install packages
WORKDIR /app
COPY requirements.txt .
RUN python3 -m venv /app/venv && \
/app/venv/bin/pip install --no-cache-dir -r requirements.txt
COPY app.py .
# 5. Create startup script
RUN printf '#!/bin/bash\n\
echo "Starting Ollama server..."\n\
ollama serve &\n\
sleep 10\n\
echo "Creating model..."\n\
ollama create johnli-persona -f /root/Modelfile\n\
echo "Starting Gradio app..."\n\
/app/venv/bin/python /app/app.py\n' > /start.sh && chmod +x /start.sh
# 6. Port for Gradio
EXPOSE 7860
# 7. Run
ENTRYPOINT []
CMD ["/bin/bash", "/start.sh"]