-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
55 lines (43 loc) · 1.46 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Usa una imagen base oficial de Python
FROM python:3.9-slim
# Establece la zona horaria a Chile
ENV TZ=America/Santiago
# Argumentos para UID y GID del usuario
ARG UID
ARG GID
# Actualiza el índice de paquetes e instala dependencias necesarias
RUN apt-get update && apt-get install -y \
curl \
net-tools \
iputils-ping \
gcc \
python3-dev \
&& rm -rf /var/lib/apt/lists/*
# Instala las dependencias de Python necesarias
RUN pip install --no-cache-dir \
fastapi \
uvicorn \
aiohttp \
beautifulsoup4 \
python-multipart \
httpx
# Establece el usuario y grupo con UID y GID del argumento
RUN groupadd -g $GID extractor && \
useradd -r -u $UID -g extractor extractor
# Establece el directorio de trabajo dentro del contenedor
WORKDIR /app
# Copia los archivos de tu aplicación al contenedor
COPY . /app
# Crea directorios necesarios
RUN mkdir -p /home/globoscx/unews/salidas/extractor && \
mkdir -p /app/logs
# Establece permisos adecuados
RUN chown -R extractor:extractor /home/globoscx/unews/salidas/extractor && \
chown -R extractor:extractor /app/logs && \
chown -R extractor:extractor /app
# Cambia al usuario no privilegiado
USER extractor
# Expone el puerto en el que correrá la aplicación
EXPOSE 8000
# Comando para ejecutar la aplicación usando Uvicorn con configuraciones optimizadas
CMD ["uvicorn", "extractor:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "4", "--timeout-keep-alive", "65"]