| #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"] | |