From d09ac6c27a89fe98c3d804b28014b6f3738935e5 Mon Sep 17 00:00:00 2001 From: okd Date: Thu, 5 Jun 2025 02:00:09 +0200 Subject: [PATCH] Refactor Dockerfile to improve clarity and maintainability --- splitter/Dockerfile | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/splitter/Dockerfile b/splitter/Dockerfile index 6ee6912..f9b6b50 100644 --- a/splitter/Dockerfile +++ b/splitter/Dockerfile @@ -1,16 +1,35 @@ # Usar imagen base UBI9 de Python de Red Hat FROM registry.access.redhat.com/ubi9/python-39:latest -# Usuario por defecto en las imágenes UBI es no-root (default) +# Usuario root para instalar paquetes USER 0 # Establecer directorio de trabajo WORKDIR /app -# Instalar ffmpeg usando el gestor de paquetes de Red Hat (dnf) -RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \ - dnf install -y dnf-plugins-core && \ - dnf config-manager --set-enabled crb && \ +# Habilitar repositorios UBI (incluyendo CRB si está disponible para UBI) +# A veces, los repositorios UBI ya están habilitados, pero esto asegura. +# Para UBI 9, el repositorio CRB se llama 'codeready-builder-for-rhel-9-*-rpms' +# El comando dnf config-manager --set-enabled crb es para RHEL suscrito. +# Para UBI, se puede intentar habilitar el repo CRB específico de UBI si existe. +# O, a menudo, EPEL para UBI9 no necesita CRB de la misma manera que EPEL para RHEL completo. + +# Instalar EPEL y ffmpeg +# EPEL para RHEL 9 / UBI 9 +RUN dnf install -y 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm' && \ + # Puede que necesites habilitar el repositorio CRB si EPEL tiene dependencias allí. + # Para UBI, el nombre del repo CRB es diferente. + # Intenta instalar ffmpeg directamente. Si falla por dependencias de CRB, + # necesitarás encontrar el nombre correcto del repo CRB para UBI9 o + # una imagen base que ya lo tenga o facilite su activación. + # Por ahora, intentemos sin habilitar CRB explícitamente, ya que el error + # "No matching repo to modify: crb" sugiere que 'crb' no es el nombre correcto + # en el contexto UBI no suscrito. + # + # Si ffmpeg de EPEL necesita paquetes de CRB, y el repo CRB de UBI no se habilita fácilmente, + # una alternativa es usar una imagen base diferente o compilar ffmpeg desde fuentes. + # + # Vamos a simplificar y ver si EPEL solo es suficiente o si da un error diferente. dnf install -y ffmpeg && \ dnf clean all @@ -18,20 +37,22 @@ RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.n COPY requirements.txt . # Instalar dependencias de Python -# Las imágenes UBI de Python utilizan pip-install en lugar de pip directamente RUN pip install --no-cache-dir -r requirements.txt # Copiar código de la aplicación COPY app.py . # Crear directorio compartido y configurar permisos adecuados para OpenShift +# No es necesario crear /app/shared aquí si se va a montar un PVC. +# Los permisos se manejan mejor con SCCs y la configuración del pod. +# Pero si necesitas que el directorio exista por defecto: RUN mkdir -p /app/shared && \ - chmod -R 775 /app && \ chgrp -R 0 /app && \ - chmod -R g=u /app + chmod -R g+rwx /app # Dar permisos al grupo root (gid 0) # Volver al usuario predeterminado de la imagen UBI (no-root) -USER default +# El usuario 'default' en ubi9/python-39 es 1001 +USER 1001 # Comando para iniciar la aplicación CMD ["python", "app.py"] \ No newline at end of file