FROM ubuntu:noble AS ollama-context-proxy RUN apt-get update -y && \ apt-get install -y --no-install-recommends --fix-missing \ python3 \ python3-dev \ python3-pip \ python3-venv \ && apt-get clean \ && rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} WORKDIR /opt/ollama-context-proxy # Set default Ollama base URL ENV OLLAMA_BASE_URL=http://ollama:11434 # Setup the docker pip shell RUN { \ echo '#!/bin/bash' ; \ echo 'source /opt/ollama-context-proxy/venv/bin/activate' ; \ echo 'if [[ "${1}" != "" ]]; then bash -c "${@}"; else bash -i; fi' ; \ } > /opt/ollama-context-proxy/shell ; \ chmod +x /opt/ollama-context-proxy/shell SHELL [ "/opt/ollama-context-proxy/shell" ] RUN python3 -m venv --system-site-packages /opt/ollama-context-proxy/venv COPY /requirements.txt /opt/ollama-context-proxy/ COPY /ollama-context-proxy.py /opt/ollama-context-proxy/ollama-context-proxy.py RUN pip install -r requirements.txt SHELL [ "/bin/bash", "-c" ] RUN { \ echo '#!/bin/bash'; \ echo 'echo "Container: ollama-context-proxy"'; \ echo 'set -e'; \ echo 'echo "Setting pip environment to /opt/ollama-context-proxy"'; \ echo 'if [[ ! -d /opt/job_hunter/venv/bin ]]; then'; \ echo ' echo "Creating virtual environment at /opt/ollama-context-proxy/venv"'; \ echo ' python3 -m venv --clear --system-site-packages /opt/ollama-context-proxy/venv'; \ echo 'fi'; \ echo 'echo "Activating virtual environment at /opt/ollama-context-proxy/venv"'; \ echo 'source /opt/ollama-context-proxy/venv/bin/activate'; \ echo 'echo "Installing requirements from /opt/ollama-context-proxy/requirements.txt"'; \ echo 'pip install -r /opt/ollama-context-proxy/requirements.txt >/dev/null || echo "Failed"'; \ echo 'if [[ "${1}" == "/bin/bash" ]] || [[ "${1}" =~ ^(/opt/ollama-context-proxy/)?shell$ ]]; then'; \ echo ' echo "Dropping to shell"'; \ echo ' shift'; \ echo ' if [[ "${1}" != "" ]]; then cmd="/opt/ollama-context-proxy/shell ${@}"; echo "Running: ${cmd}"; exec ${cmd}; else /opt/ollama-context-proxy/shell; fi'; \ echo 'else'; \ echo ' while true; do'; \ echo ' echo "Launching Ollama context proxy server..."'; \ echo ' exec python3 /opt/ollama-context-proxy/ollama-context-proxy.py'; \ echo ' if [[ $? -ne 0 ]]; then'; \ echo ' echo "Ollama context proxy server crashed, restarting in 3 seconds..."'; \ echo ' sleep 3'; \ echo ' fi'; \ echo ' done' ; \ echo 'fi'; \ } > /entrypoint.sh \ && chmod +x /entrypoint.sh ENV PATH=/opt/ollama-context-proxy:$PATH ENTRYPOINT ["/entrypoint.sh"]