thigas88 commited on
Commit
4b7bd18
·
1 Parent(s): c103760

Adaptando projeto para deploy no Hugging Face Spaces.

Browse files
Files changed (3) hide show
  1. Dockerfile +20 -10
  2. Dockerfile.hf +0 -39
  3. README.md +1 -1
Dockerfile CHANGED
@@ -5,9 +5,19 @@ FROM python:3.11-slim
5
  ENV PYTHONDONTWRITEBYTECODE 1
6
  ENV PYTHONUNBUFFERED 1
7
 
8
- # Instalar dependências do sistema, incluindo o compilador LaTeX
 
 
 
 
 
 
 
 
 
9
  # texlive-latex-base contém o pdflatex básico
10
  # texlive-fonts-recommended é necessário para fontes comuns
 
11
  RUN apt-get update && apt-get install -y --no-install-recommends \
12
  texlive-latex-base \
13
  texlive-fonts-recommended \
@@ -15,18 +25,18 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
15
  && apt-get clean \
16
  && rm -rf /var/lib/apt/lists/*
17
 
18
- # Definir diretório de trabalho
19
- WORKDIR /app
20
 
21
  # Instalar dependências Python
22
- COPY requirements.txt .
23
- RUN pip install --no-cache-dir -r requirements.txt
24
 
25
  # Copiar o código da aplicação
26
- COPY main.py .
27
 
28
- # Expor a porta que o FastAPI usará
29
- EXPOSE 8000
30
 
31
- # Comando para rodar a aplicação
32
- CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
 
5
  ENV PYTHONDONTWRITEBYTECODE 1
6
  ENV PYTHONUNBUFFERED 1
7
 
8
+ # Criar um usuário não-root para o Hugging Face Spaces
9
+ RUN useradd -m -u 1000 user
10
+ USER user
11
+ ENV HOME=/home/user \
12
+ PATH=/home/user/.local/bin:$PATH
13
+
14
+ WORKDIR $HOME/app
15
+
16
+ # Instalar dependências do sistema como root
17
+ # incluindo o compilador LaTeX
18
  # texlive-latex-base contém o pdflatex básico
19
  # texlive-fonts-recommended é necessário para fontes comuns
20
+ USER root
21
  RUN apt-get update && apt-get install -y --no-install-recommends \
22
  texlive-latex-base \
23
  texlive-fonts-recommended \
 
25
  && apt-get clean \
26
  && rm -rf /var/lib/apt/lists/*
27
 
28
+ # Voltar para o usuário não-root
29
+ USER user
30
 
31
  # Instalar dependências Python
32
+ COPY --chown=user requirements.txt .
33
+ RUN pip install --no-cache-dir --user -r requirements.txt
34
 
35
  # Copiar o código da aplicação
36
+ COPY --chown=user main.py .
37
 
38
+ # O Hugging Face Spaces usa a porta 7860 por padrão
39
+ EXPOSE 7860
40
 
41
+ # Comando para rodar a aplicação na porta correta
42
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
Dockerfile.hf DELETED
@@ -1,39 +0,0 @@
1
- # Usar uma imagem base leve de Python
2
- FROM python:3.11-slim
3
-
4
- # Evitar a geração de arquivos .pyc e habilitar o log em tempo real
5
- ENV PYTHONDONTWRITEBYTECODE 1
6
- ENV PYTHONUNBUFFERED 1
7
-
8
- # Criar um usuário não-root para o Hugging Face Spaces
9
- RUN useradd -m -u 1000 user
10
- USER user
11
- ENV HOME=/home/user \
12
- PATH=/home/user/.local/bin:$PATH
13
-
14
- WORKDIR $HOME/app
15
-
16
- # Instalar dependências do sistema como root
17
- USER root
18
- RUN apt-get update && apt-get install -y --no-install-recommends \
19
- texlive-latex-base \
20
- texlive-fonts-recommended \
21
- texlive-latex-extra \
22
- && apt-get clean \
23
- && rm -rf /var/lib/apt/lists/*
24
-
25
- # Voltar para o usuário não-root
26
- USER user
27
-
28
- # Instalar dependências Python
29
- COPY --chown=user requirements.txt .
30
- RUN pip install --no-cache-dir --user -r requirements.txt
31
-
32
- # Copiar o código da aplicação
33
- COPY --chown=user main.py .
34
-
35
- # O Hugging Face Spaces usa a porta 7860 por padrão
36
- EXPOSE 7860
37
-
38
- # Comando para rodar a aplicação na porta correta
39
- CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -11,7 +11,7 @@ Esta é uma API simples construída com FastAPI que recebe conteúdo LaTeX via P
11
  ```
12
  3. Inicie o container:
13
  ```bash
14
- docker run -p 8000:8000 latex-api
15
  ```
16
 
17
  ## Como usar a API
 
11
  ```
12
  3. Inicie o container:
13
  ```bash
14
+ docker run -p 8000:7860 latex-api
15
  ```
16
 
17
  ## Como usar a API