Refactor Dockerfile to improve clarity and maintainability
This commit is contained in:
@@ -1,16 +1,35 @@
|
|||||||
# Usar imagen base UBI9 de Python de Red Hat
|
# Usar imagen base UBI9 de Python de Red Hat
|
||||||
FROM registry.access.redhat.com/ubi9/python-39:latest
|
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
|
USER 0
|
||||||
|
|
||||||
# Establecer directorio de trabajo
|
# Establecer directorio de trabajo
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Instalar ffmpeg usando el gestor de paquetes de Red Hat (dnf)
|
# Habilitar repositorios UBI (incluyendo CRB si está disponible para UBI)
|
||||||
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
|
# A veces, los repositorios UBI ya están habilitados, pero esto asegura.
|
||||||
dnf install -y dnf-plugins-core && \
|
# Para UBI 9, el repositorio CRB se llama 'codeready-builder-for-rhel-9-*-rpms'
|
||||||
dnf config-manager --set-enabled crb && \
|
# 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 install -y ffmpeg && \
|
||||||
dnf clean all
|
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 .
|
COPY requirements.txt .
|
||||||
|
|
||||||
# Instalar dependencias de Python
|
# 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
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
# Copiar código de la aplicación
|
# Copiar código de la aplicación
|
||||||
COPY app.py .
|
COPY app.py .
|
||||||
|
|
||||||
# Crear directorio compartido y configurar permisos adecuados para OpenShift
|
# 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 && \
|
RUN mkdir -p /app/shared && \
|
||||||
chmod -R 775 /app && \
|
|
||||||
chgrp -R 0 /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)
|
# 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
|
# Comando para iniciar la aplicación
|
||||||
CMD ["python", "app.py"]
|
CMD ["python", "app.py"]
|
||||||
Reference in New Issue
Block a user