first commit

This commit is contained in:
Xavier Rodriguez
2025-12-09 12:45:15 +01:00
commit 7fc616b5c3
44 changed files with 6981 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
# Dockerfile para Cisco MAC Monitor con compatibilidad SSH legacy
# ===============================================================
FROM rockylinux:8
# Metadatos
LABEL maintainer="Equipo de Monitorización de Red"
LABEL description="Monitor de direcciones MAC para dispositivo Cisco con soporte SSH legacy"
LABEL version="2.0-ssh-compat"
# Variables de entorno
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV LANG=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
# Actualizar sistema e instalar dependencias base
RUN dnf update -y && \
dnf install -y \
python3 \
python3-pip \
python3-devel \
openssh-clients \
gcc \
openssl-devel \
libffi-devel \
krb5-devel && \
dnf clean all
# Crear usuario no privilegiado
RUN useradd -m -u 1000 -s /bin/bash monitor
# Instalar dependencias Python con versiones específicas para compatibilidad
RUN pip3 install --no-cache-dir --upgrade pip && \
pip3 install --no-cache-dir \
'paramiko>=2.12.0,<4.0' \
'PyYAML>=5.0,<7.0' \
'cryptography>=3.4.8,<42.0'
# Cambiar al usuario no privilegiado
USER monitor
WORKDIR /app
# Copiar scripts principales
COPY --chown=monitor:monitor cisco_mac_monitor.py /app/
COPY --chown=monitor:monitor test_compatibility.py /app/
# Permisos de ejecución
USER root
RUN chmod +x /app/cisco_mac_monitor.py /app/test_compatibility.py
USER monitor
# Healthcheck mejorado que verifica la configuración SSH
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD python3 /app/test_compatibility.py > /dev/null && \
python3 /app/cisco_mac_monitor.py --help > /dev/null || exit 1
# Entry point
ENTRYPOINT ["python3", "/app/cisco_mac_monitor.py"]