Files
los-vecinos-de-cisco/no/Dockerfile
T
2025-12-09 12:45:15 +01:00

58 lines
1.7 KiB
Docker

# 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"]