Cauanne commited on
Commit
2f844d8
·
verified ·
1 Parent(s): 6c484a6

Upload 4 files

Browse files
Files changed (2) hide show
  1. Dockerfile +26 -8
  2. app.py +1 -0
Dockerfile CHANGED
@@ -1,7 +1,15 @@
 
1
  FROM python:3.9-slim
2
 
3
- # Instalar dependências do sistema necessárias para o Playwright
 
 
 
 
4
  RUN apt-get update && apt-get install -y \
 
 
 
5
  libglib2.0-0 \
6
  libnss3 \
7
  libnspr4 \
@@ -24,17 +32,27 @@ RUN apt-get update && apt-get install -y \
24
  libasound2 \
25
  && rm -rf /var/lib/apt/lists/*
26
 
27
- WORKDIR /app
 
 
 
 
 
 
28
 
29
- COPY requirements.txt .
30
- RUN pip install --no-cache-dir -r requirements.txt
 
31
 
32
  # Instalar navegadores do Playwright
33
- RUN playwright install chromium --with-deps
34
 
35
- COPY . .
 
36
 
37
- # Expor a porta padrão do Hugging Face Spaces
38
  EXPOSE 7860
39
 
40
- CMD ["python", "app.py"]
 
 
 
1
+ # Usar uma imagem base oficial do Python com suporte a Debian
2
  FROM python:3.9-slim
3
 
4
+ # Definir variáveis de ambiente para evitar interações durante a instalação
5
+ ENV DEBIAN_FRONTEND=noninteractive
6
+ ENV PYTHONUNBUFFERED=1
7
+
8
+ # Instalar dependências mínimas do sistema para rodar o Chromium
9
  RUN apt-get update && apt-get install -y \
10
+ wget \
11
+ gnupg \
12
+ ca-certificates \
13
  libglib2.0-0 \
14
  libnss3 \
15
  libnspr4 \
 
32
  libasound2 \
33
  && rm -rf /var/lib/apt/lists/*
34
 
35
+ # Criar um usuário não-root para segurança (opcional, mas recomendado pelo HF)
36
+ RUN useradd -m -u 1000 user
37
+ USER user
38
+ ENV HOME=/home/user \
39
+ PATH=/home/user/.local/bin:$PATH
40
+
41
+ WORKDIR $HOME/app
42
 
43
+ # Copiar apenas o requirements primeiro para aproveitar o cache do Docker
44
+ COPY --chown=user requirements.txt .
45
+ RUN pip install --no-cache-dir --user -r requirements.txt
46
 
47
  # Instalar navegadores do Playwright
48
+ RUN python3 -m playwright install chromium --with-deps
49
 
50
+ # Copiar o restante do código
51
+ COPY --chown=user . .
52
 
53
+ # O Hugging Face Spaces usa a porta 7860 por padrão
54
  EXPOSE 7860
55
 
56
+ # Comando para iniciar a aplicação usando o gunicorn com suporte a gevent para SocketIO
57
+ # Ou rodar diretamente o app.py se estiver configurado corretamente
58
+ CMD ["python3", "app.py"]
app.py CHANGED
@@ -391,4 +391,5 @@ def download_lives():
391
 
392
 
393
  if __name__ == '__main__':
 
394
  socketio.run(app, host='0.0.0.0', port=7860, allow_unsafe_werkzeug=True)
 
391
 
392
 
393
  if __name__ == '__main__':
394
+ # Porta 7860 é obrigatória para o Hugging Face Spaces
395
  socketio.run(app, host='0.0.0.0', port=7860, allow_unsafe_werkzeug=True)