CLMARRARA's picture
Ajuste para MediaPipe tentando usar EGL (OpenGL)
58c5e05
#FROM python:3.13-slim
FROM python:3.11-slim
WORKDIR /app
RUN mkdir -p /app/models/deepface/.deepface/weights
# Evita prompts interativos durante a instalação de pacotes
ENV DEBIAN_FRONTEND=noninteractive
# Desativa o uso da GPU para o MediaPipe (se aplicável)
ENV MEDIAPIPE_DISABLE_GPU=1
# Desativa a variável de ambiente DISPLAY para evitar problemas de renderização em ambientes sem interface gráfica
ENV DISPLAY=""
# Desativa o uso do backend MSMF para vídeo no OpenCV, que pode causar problemas de compatibilidade em alguns ambientes.
ENV OPENCV_VIDEOIO_PRIORITY_MSMF=0
# Configura o EGL para usar o modo surfaceless, evitando problemas de renderização em ambientes sem GPU
ENV EGL_PLATFORM=surfaceless
# Desativa o uso da GPU para o TensorFlow (se aplicável)
ENV CUDA_VISIBLE_DEVICES=-1
# Reduz o nível de log do TensorFlow para evitar mensagens de aviso desnecessárias
# 0 = DEBUG, 1 = INFO, 2 = WARNING, 3 = ERROR (apenas erros críticos)
ENV TF_CPP_MIN_LOG_LEVEL=3
# Desativa otimizações específicas do OneDNN, que podem causar problemas de desempenho ou compatibilidade em alguns ambientes
ENV TF_ENABLE_ONEDNN_OPTS=0
# Reduz o nível de log do Google Logging para evitar mensagens de aviso desnecessárias
ENV GLOG_minloglevel=3
ENV TRANSFORMERS_OFFLINE=0
ENV TRANSFORMERS_CACHE=/tmp
ENV HF_HOME=/tmp
ENV OMP_NUM_THREADS=1
# dependências do sistema
#RUN apt-get update && apt-get install -y \
# build-essential \
# gcc \
# g++ \
# libgl1 \
# libglib2.0-0 \
# libgles2 \
# libglx-mesa0 \
# libegl1 \
# ffmpeg \
# wget \
# && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y \
libgl1 \
libglib2.0-0 \
libgles2 \
libglx-mesa0 \
libegl1 \
ffmpeg \
wget \
curl \
&& rm -rf /var/lib/apt/lists/*
# copiar requirements
COPY ./requirements_back.txt ./requirements.txt
# instalar libs
RUN pip install --no-cache-dir --upgrade pip setuptools wheel
RUN pip install --no-cache-dir torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cpu
RUN mkdir -p /app/models/deepface/.deepface/weights
RUN wget -O /app/models/deepface/.deepface/weights/facial_expression_model_weights.h5 \
https://github.com/serengil/deepface_models/releases/download/v1.0/facial_expression_model_weights.h5
# Alternativamente, usando curl:
#RUN curl -L -o /app/models/deepface/.deepface/weights/facial_expression_model_weights.h5 \
#https://github.com/serengil/deepface_models/releases/download/v1.0/facial_expression_model_weights.h5
# Usando Python para baixar o arquivo (se wget ou curl não estiverem disponíveis):
#RUN python -c "import urllib.request; \
#urllib.request.urlretrieve('https://github.com/serengil/deepface_models/releases/download/v1.0/facial_expression_model_weights.h5', \
#'/app/models/deepface/.deepface/weights/facial_expression_model_weights.h5')"
RUN pip install --no-cache-dir -r requirements.txt
# copiar restante do projeto
COPY . .
EXPOSE 7860
CMD ["uvicorn", "app.api:app", "--host", "0.0.0.0", "--port", "7860"]