TechDev commited on
Commit
95bd32d
·
verified ·
1 Parent(s): 2689066

Upload 3 files

Browse files
Files changed (3) hide show
  1. Dockerfile +23 -14
  2. app.py +19 -0
  3. requirements.txt +5 -2
Dockerfile CHANGED
@@ -1,22 +1,31 @@
1
- # Usar imagen base de Ubuntu
2
- FROM ubuntu:latest
3
 
4
- # Actualizar e instalar dependencias básicas
 
 
 
5
  RUN apt-get update && apt-get install -y \
6
  curl \
7
- && rm -rf /var/lib/apt/lists/*
 
 
 
 
8
 
9
- # Instalar Ollama
10
- RUN curl -fsSL https://ollama.ai/install.sh | sh
 
 
11
 
12
- # Configurar puerto y host para la API
13
- ENV OLLAMA_HOST=0.0.0.0:7860
14
 
15
- # Exponer el puerto para Hugging Face
16
- EXPOSE 7860
17
 
18
- # Directorio de trabajo para modelos (opcional, pero útil para persistencia)
19
- VOLUME /root/.ollama
20
 
21
- # Iniciar el servidor Ollama
22
- CMD ["ollama", "serve"]
 
 
 
 
 
1
+ FROM ubuntu
 
2
 
3
+ RUN apt-get update && \
4
+ apt-get install -y sudo && \
5
+ apt-get clean
6
+ RUN apt-get update && apt-get install -y python3 python3-pip python3.12-venv
7
  RUN apt-get update && apt-get install -y \
8
  curl \
9
+ ca-certificates \
10
+ megatools \
11
+ gnupg && \
12
+ curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
13
+ RUN rm -rf /var/lib/apt/lists/*
14
 
15
+ # Añadir un usuario llamado 'appuser'
16
+ RUN useradd -ms /bin/bash appuser
17
+ RUN usermod -aG sudo appuser
18
+ RUN echo "appuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
19
 
20
+ USER appuser
 
21
 
22
+ WORKDIR /app
 
23
 
24
+ COPY . /app
 
25
 
26
+ RUN sudo chmod -R 777 /app
27
+
28
+ RUN python3 -m venv venv
29
+ RUN /bin/bash -c "source venv/bin/activate && pip3 install -r requirements.txt"
30
+
31
+ CMD [ "venv/bin/gunicorn","-b","0.0.0.0:7860", "app:app"]
app.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, render_template
2
+ from flask_socketio import SocketIO, send
3
+
4
+ app = Flask(__name__)
5
+ socketio = SocketIO(app)
6
+
7
+ # Ruta principal
8
+ @app.route('/')
9
+ def index():
10
+ return "INICIADO"
11
+
12
+ # Manejo de mensajes WebSocket
13
+ @socketio.on('message')
14
+ def handle_message(msg):
15
+ print(f"Mensaje recibido: {msg}")
16
+ send(msg, broadcast=True) # Reenvía el mensaje a todos los clientes conectados
17
+
18
+ if __name__ == '__main__':
19
+ socketio.run(app, host='0.0.0.0', port=5000, debug=True)
requirements.txt CHANGED
@@ -1,2 +1,5 @@
1
- flask
2
- gunicorn
 
 
 
 
1
+ Flask==2.3.2
2
+ gunicorn
3
+ Flask-SocketIO==5.3.4
4
+ python-socketio==5.8.0
5
+ eventlet==0.33.3