File size: 930 Bytes
d062887
 
b724fd5
 
 
 
 
 
 
 
 
 
 
 
d062887
 
8c28a72
 
b724fd5
 
 
 
d062887
b724fd5
 
d062887
b724fd5
 
 
d062887
8c28a72
d062887
b724fd5
8c28a72
d062887
 
8c28a72
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
FROM python:3.11-slim

# Boas práticas de runtime
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1

# Dependências básicas do sistema (certificados TLS etc.)
RUN apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# Cria usuário padrão do HF (uid 1000)
RUN useradd -m -u 1000 user

WORKDIR /home/user/app

# Instala deps primeiro (melhor cache)
COPY requirements.txt ./requirements.txt
RUN python -m pip install --upgrade pip \
    && python -m pip install -r requirements.txt

# Copia o código
COPY . .

# Pasta do SQLite (e garante permissão para o usuário)
RUN mkdir -p /home/user/app/data \
    && chown -R user:user /home/user/app

USER user

# HF expõe PORT via env; fallback 7860
ENV PORT=7860
EXPOSE 7860

CMD ["sh", "-c", "uvicorn server:app --host 0.0.0.0 --port ${PORT}"]