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