61 lines
2.1 KiB
Docker
61 lines
2.1 KiB
Docker
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 'source /opt/ollama-context-proxy/venv/bin/activate'; \
|
|
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"] |