Actualizar processor/Dockerfile
This commit is contained in:
@@ -1,48 +1,47 @@
|
|||||||
# 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
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Instalar dependencias del sistema necesarias para PyTorch y Whisper
|
# Instalar dnf-plugins-core (que provee dnf config-manager)
|
||||||
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
|
# Luego instalar EPEL para RHEL 9.
|
||||||
dnf install -y dnf-plugins-core && \
|
# Luego habilitar el repositorio CodeReady Builder específico de UBI9.
|
||||||
dnf config-manager --set-enabled crb && \
|
# 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 install -y gcc-c++ make ffmpeg && \
|
||||||
dnf clean all
|
dnf clean all && \
|
||||||
|
rm -rf /var/cache/dnf # Limpieza adicional del caché de dnf
|
||||||
|
|
||||||
# Copiar requirements.txt e instalar dependencias de Python
|
# Copiar archivos de la aplicación
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
|
||||||
|
|
||||||
# Crear un script para descargar el modelo Whisper durante la construcción de la imagen
|
# Instalar dependencias de Python
|
||||||
RUN echo '\
|
# Aumentar el timeout por si alguna descarga de pip es lenta
|
||||||
import whisper\n\
|
RUN pip install --default-timeout=300 --no-cache-dir -r requirements.txt
|
||||||
import torch\n\
|
|
||||||
print("Verificando disponibilidad de CUDA:", torch.cuda.is_available())\n\
|
|
||||||
if torch.cuda.is_available():\n\
|
|
||||||
print("Dispositivo CUDA:", torch.cuda.get_device_name(0))\n\
|
|
||||||
print("Descargando modelo Whisper base...")\n\
|
|
||||||
whisper.load_model("base")\n\
|
|
||||||
print("Modelo descargado correctamente")\
|
|
||||||
' > download_model.py
|
|
||||||
|
|
||||||
# Ejecutar el script para descargar el modelo durante la construcción
|
|
||||||
RUN python download_model.py
|
|
||||||
|
|
||||||
# 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 directorios si van a ser usados internamente ANTES de montar volúmenes,
|
||||||
RUN mkdir -p /app/shared && \
|
# y establecer permisos para OpenShift (GID 0).
|
||||||
chmod -R 775 /app && \
|
# 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 && \
|
chgrp -R 0 /app && \
|
||||||
chmod -R g=u /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)
|
# Volver al usuario predeterminado de la imagen UBI (no-root, UID 1001 para esta imagen)
|
||||||
USER default
|
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