FROM ollama/ollama:latest # Stay as root to make changes USER root # Remove any existing ollama user and recreate with proper setup RUN userdel -r ollama 2>/dev/null || true # Create ollama user with home directory RUN useradd -m -u 1000 -s /bin/bash ollama || \ useradd -m -u 1001 -s /bin/bash ollama # Create necessary directories with proper permissions RUN mkdir -p /home/ollama/.ollama/models && \ mkdir -p /home/ollama/.ollama/logs && \ touch /home/ollama/.ollama/.keep && \ chown -R ollama:ollama /home/ollama && \ chmod -R 755 /home/ollama && \ chmod -R 775 /home/ollama/.ollama # Ensure the ollama binary has proper permissions RUN chmod +x /bin/ollama # Set environment variables ENV OLLAMA_HOST=0.0.0.0:7860 \ OLLAMA_MODELS=/home/ollama/.ollama/models \ OLLAMA_NUM_PARALLEL=4 \ OLLAMA_MAX_LOADED_MODELS=1 \ OLLAMA_CONTEXT_LENGTH=8196 \ OLLAMA_KEEP_ALIVE=1m \ OLLAMA_CPU_THREADS=4 \ HOME=/home/ollama \ USER=ollama # Switch to ollama user USER ollama WORKDIR /home/ollama # Verify permissions (this will help with debugging) RUN ls -la /home/ollama/.ollama && \ touch /home/ollama/.ollama/test_write && \ rm /home/ollama/.ollama/test_write # Expose port EXPOSE 7860 # Start Ollama service CMD ["serve"]