TechDev commited on
Commit
73641ae
verified
1 Parent(s): 9788dc4

Upload 2 files

Browse files
Files changed (2) hide show
  1. Dockerfile +7 -4
  2. install.py +41 -0
Dockerfile CHANGED
@@ -4,6 +4,10 @@ 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
 
8
  # A帽adir un usuario llamado 'appuser'
9
  RUN useradd -ms /bin/bash appuser
@@ -14,12 +18,11 @@ USER appuser
14
 
15
  WORKDIR /app
16
 
17
- COPY requirements.txt /app
18
- COPY main.py /app
19
 
20
  RUN sudo chmod -R 777 /app
21
 
22
  RUN python3 -m venv venv
23
- RUN /bin/bash -c "source venv/bin/activate && pip3 install -r requirements.txt"
24
 
25
- CMD [ "venv/bin/gunicorn","-b","0.0.0.0:7860", "main:app"]
 
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
+ gnupg
11
 
12
  # A帽adir un usuario llamado 'appuser'
13
  RUN useradd -ms /bin/bash appuser
 
18
 
19
  WORKDIR /app
20
 
21
+ COPY . /app
 
22
 
23
  RUN sudo chmod -R 777 /app
24
 
25
  RUN python3 -m venv venv
26
+ RUN /bin/bash -c "source venv/bin/activate && python3 install.py && pip3 install -r requirements.txt"
27
 
28
+ CMD [ "venv/bin/gunicorn","-b","0.0.0.0:7860", "app:app"]
install.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import subprocess
2
+ try:
3
+ import requests
4
+ except:
5
+ subprocess.run(["pip3", "install", "requests"])
6
+ import os
7
+ import zipfile
8
+ import io
9
+
10
+ # Obtener todas las variables de entorno como un diccionario
11
+ variables = os.environ
12
+ url = ""
13
+ # Imprimir todas las variables de entorno
14
+ for key, value in variables.items():
15
+ if key == "URL":
16
+ url = value
17
+ break
18
+ print("[INFO] NO SE ENCONTR脫 URL")
19
+
20
+ def process(url):
21
+ # Descargar el archivo desde la URL
22
+ respuesta = requests.get(url)
23
+
24
+ # Verificar si la descarga fue exitosa
25
+ if respuesta.status_code != 200:
26
+ raise Exception(f"Error al descargar el archivo. C贸digo de estado: {respuesta.status_code}")
27
+
28
+ # Verificar si el archivo es un ZIP
29
+ if 'zip' in respuesta.headers.get('Content-Type', '').lower():
30
+ # Crear un objeto BytesIO para manejar el contenido en memoria
31
+ with zipfile.ZipFile(io.BytesIO(respuesta.content)) as archivo_zip:
32
+ # Extraer todos los archivos del ZIP en el directorio actual
33
+ archivo_zip.extractall()
34
+ print(f"Archivos extra铆dos en: {os.getcwd()}")
35
+ else:
36
+ # Si no es un ZIP, guardar el archivo directamente
37
+ nombre_archivo = url.split('/')[-1] # Obtener el nombre del archivo desde la URL
38
+ with open(nombre_archivo, 'wb') as archivo:
39
+ archivo.write(respuesta.content)
40
+ print(f"Archivo descargado: {nombre_archivo}")
41
+ process(url)