# Use the latest Ubuntu image as the base FROM ubuntu:latest # Update the package list, install curl, and clean up to reduce image size RUN apt-get update && \ apt-get install -y curl nginx libnginx-mod-http-lua && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install Ollama using the official install script RUN curl -fsSL https://ollama.com/install.sh | sh # Set the Ollama host environment variable ENV OLLAMA_HOST=0.0.0.0 # Create the Ollama directory and set permissions RUN mkdir -p /.ollama && chmod 777 /.ollama # Create the models directory and set permissions RUN mkdir -p /usr/share/ollama/.ollama/models && chmod -R 777 /usr/share/ollama/.ollama/models # Set the Ollama models environment variable ENV OLLAMA_MODELS="/usr/share/ollama/.ollama/models" # Copy the Nginx configuration file COPY nginx.conf /etc/nginx/nginx.conf # Copy Lua script COPY validate_api_key.lua /usr/local/openresty/nginx/lua/validate_api_key.lua # Expose the Ollama server port EXPOSE 11434 # Run the Ollama server and pull the model CMD ollama serve & \ sleep 5 && \ ollama pull llama3 && \ wait && \ nginx -g 'daemon off;'