# Usar imagen base UBI9 de Python de Red Hat FROM registry.access.redhat.com/ubi9/python-39:latest # Usuario root para instalar paquetes USER 0 # Establecer directorio de trabajo WORKDIR /app # Instalar dnf-plugins-core (que provee dnf config-manager) # Luego instalar EPEL para RHEL 9. # Luego habilitar el repositorio CodeReady Builder específico de UBI9. # Finalmente, instalar las herramientas de compilación y ffmpeg. RUN dnf install -y dnf-plugins-core && \ dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \ # Habilitar el repositorio CodeReady Builder para UBI 9 # El nombre exacto puede variar ligeramente, pero este es el patrón común. # $(arch) se expandirá a la arquitectura actual (ej. x86_64, aarch64) dnf config-manager --set-enabled codeready-builder-for-rhel-9-$(arch)-rpms && \ dnf install -y gcc-c++ make ffmpeg && \ dnf clean all && \ rm -rf /var/cache/dnf # Limpieza adicional del caché de dnf # Copiar archivos de la aplicación COPY requirements.txt . # Instalar dependencias de Python # Aumentar el timeout por si alguna descarga de pip es lenta RUN pip install --default-timeout=300 --no-cache-dir -r requirements.txt # Copiar código de la aplicación COPY app.py . # Crear directorios si van a ser usados internamente ANTES de montar volúmenes, # y establecer permisos para OpenShift (GID 0). # Si estos directorios SIEMPRE van a ser montados desde PVCs, este paso puede ser opcional # o solo crear los directorios base sin contenido. RUN mkdir -p /app/shared /app/output && \ chgrp -R 0 /app && \ chmod -R g+rwx /app # El UID será arbitrario, GID 0 tiene permisos por chgrp y chmod g+rwx # Volver al usuario predeterminado de la imagen UBI (no-root, UID 1001 para esta imagen) USER 1001 # Comando para iniciar la aplicación CMD ["python", "app.py"]