Migra el servicio a arquitectura Docker persistente y mueve credenciales HANA a .env
- Reemplaza config_loader/config_model/hana_client/logger_utilities/outlook_utilities por core.py (pipeline funcional), hana_manager.py, logger_manager.py, scheduler.py y descargador_sovos.py (Playwright/Firefox) según la plantilla de servicios. - main.py pasa a loop continuo dirigido por scheduler.json, con manejo de SIGINT/SIGTERM. - Agrega Dockerfile, docker-compose.yml (restart unless-stopped) y certs/ para despliegue. - Agrega smb_transfer.py para la transferencia a carpeta compartida. - Saca las credenciales de HANA de config.json y las mueve a .env (HANA_HOST/PORT/USER/PASSWORD).
This commit is contained in:
1 parent
1503d6a2ec
commit
277d07dfeb
22 files changed
+1081
-750
No files matched your search
+33
@@ -0,0 +1,33 @@
|
||||
FROM mcr.microsoft.com/playwright/python:v1.62.0-jammy
|
||||
|
||||
# Zona horaria del contenedor
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV TZ=America/Lima
|
||||
|
||||
# rsync para la transferencia a la carpeta compartida (SMB)
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends tzdata rsync \
|
||||
&& ln -fs /usr/share/zoneinfo/$TZ /etc/localtime \
|
||||
&& dpkg-reconfigure -f noninteractive tzdata \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# CA de inspección SSL de la red (Fortinet FG100FTK22018356) para pip y HTTPS.
|
||||
COPY certs/fortinet-root.crt /usr/local/share/ca-certificates/fortinet-root.crt
|
||||
RUN update-ca-certificates
|
||||
|
||||
ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
|
||||
ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Chromium y Firefox ya vienen con la imagen oficial de Playwright; solo
|
||||
# instalamos las dependencias Python y quitamos webkit (se usa Firefox).
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt \
|
||||
&& rm -rf /ms-playwright/webkit-*
|
||||
|
||||
COPY . .
|
||||
|
||||
# Servicio persistente: main.py corre en loop (ver scheduler.py/scheduler.json).
|
||||
CMD ["python", "main.py"]
|
||||
Reference in new issue
Block a user