48 lines
1.5 KiB
Docker
48 lines
1.5 KiB
Docker
# 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)
|
|
USER 0
|
|
|
|
WORKDIR /app
|
|
|
|
# Instalar dependencias del sistema necesarias para PyTorch y Whisper
|
|
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 && \
|
|
dnf install -y gcc-c++ make ffmpeg && \
|
|
dnf clean all
|
|
|
|
# Copiar requirements.txt e instalar dependencias de Python
|
|
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
|
|
RUN echo '\
|
|
import whisper\n\
|
|
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
|
|
COPY app.py .
|
|
|
|
# Crear directorio compartido y configurar permisos adecuados para OpenShift
|
|
RUN mkdir -p /app/shared && \
|
|
chmod -R 775 /app && \
|
|
chgrp -R 0 /app && \
|
|
chmod -R g=u /app
|
|
|
|
# Volver al usuario predeterminado de la imagen UBI (no-root)
|
|
USER default
|
|
|
|
# Comando para iniciar la aplicación
|
|
CMD ["python", "app.py"] |