guydffdsdsfd commited on
Commit
c92d564
·
verified ·
1 Parent(s): 33ce314

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +23 -18
Dockerfile CHANGED
@@ -1,29 +1,34 @@
1
  FROM ollama/ollama:latest
2
 
3
- # Install Python and Flask for the gateway
4
- RUN apt-get update && apt-get install -y python3 python3-pip && pip3 install flask flask-cors requests
 
5
 
6
  ENTRYPOINT []
7
  ENV OLLAMA_HOST=127.0.0.1:11434
8
  ENV OLLAMA_ORIGINS="*"
9
  ENV HOME=/home/ollama
 
10
  RUN mkdir -p /home/ollama/.ollama && chmod 777 /home/ollama/.ollama
11
 
12
- # Create a dynamic Security Proxy
13
- # This version accepts ANY key starting with "sk-"
14
- RUN echo 'from flask import Flask, request, Response; \
15
- import requests; \
16
- from flask_cors import CORS; \
17
- app = Flask(__name__); \
18
- CORS(app); \
19
- @app.route("/api/generate", methods=["POST"]) \
20
- def proxy(): \
21
- key = request.headers.get("x-api-key", ""); \
22
- if not key.startswith("sk-") or len(key) < 10: \
23
- return {"error": "Invalid API Key format"}, 401; \
24
- resp = requests.post("http://127.0.0.1:11434/api/generate", json=request.json); \
25
- return Response(resp.content, resp.status_code, resp.headers.items()); \
26
- if __name__ == "__main__": \
 
 
27
  app.run(host="0.0.0.0", port=7860)' > /guard.py
28
 
29
- CMD ["/bin/sh", "-c", "ollama serve & sleep 10 && ollama pull phi3 && python3 /guard.py"]
 
 
1
  FROM ollama/ollama:latest
2
 
3
+ # Install Python and dependencies
4
+ RUN apt-get update && apt-get install -y python3 python3-pip && \
5
+ pip3 install flask flask-cors requests
6
 
7
  ENTRYPOINT []
8
  ENV OLLAMA_HOST=127.0.0.1:11434
9
  ENV OLLAMA_ORIGINS="*"
10
  ENV HOME=/home/ollama
11
+
12
  RUN mkdir -p /home/ollama/.ollama && chmod 777 /home/ollama/.ollama
13
 
14
+ # Create the Security Proxy (Cleaner formatting to prevent Exit Code 1)
15
+ RUN printf 'from flask import Flask, request, Response\n\
16
+ import requests\n\
17
+ from flask_cors import CORS\n\
18
+ app = Flask(__name__)\n\
19
+ CORS(app)\n\
20
+ @app.route("/api/generate", methods=["POST"])\n\
21
+ def proxy():\n\
22
+ key = request.headers.get("x-api-key", "")\n\
23
+ if not key.startswith("sk-") or len(key) < 10:\n\
24
+ return {"error": "Invalid API Key"}, 401\n\
25
+ try:\n\
26
+ resp = requests.post("http://127.0.0.1:11434/api/generate", json=request.json)\n\
27
+ return Response(resp.content, resp.status_code, resp.headers.items())\n\
28
+ except:\n\
29
+ return {"error": "Ollama not ready"}, 503\n\
30
+ if __name__ == "__main__":\n\
31
  app.run(host="0.0.0.0", port=7860)' > /guard.py
32
 
33
+ # Start Ollama and the Proxy together
34
+ CMD ["/bin/sh", "-c", "ollama serve & sleep 15 && ollama pull phi3 && python3 /guard.py"]