ViniciusKhan commited on
Commit
b724fd5
·
1 Parent(s): 2e4f857

Add libsql dependency

Browse files
Files changed (2) hide show
  1. Dockerfile +22 -11
  2. requirements.txt +1 -7
Dockerfile CHANGED
@@ -1,26 +1,37 @@
1
  FROM python:3.11-slim
2
 
3
- # cria usuário padrão do HF
 
 
 
 
 
 
 
 
 
 
 
4
  RUN useradd -m -u 1000 user
5
 
6
  WORKDIR /home/user/app
7
 
8
- # deps
9
- COPY --chown=user requirements.txt /home/user/app/requirements.txt
10
- RUN pip install --no-cache-dir --upgrade pip \
11
- && pip install --no-cache-dir -r requirements.txt
12
 
13
- # código
14
- COPY --chown=user . /home/user/app
15
 
16
- # pasta do sqlite replica/local
17
- RUN mkdir -p /home/user/app/data
 
18
 
19
  USER user
20
 
21
- # HF expõe PORT via env; use 7860 como fallback
22
  ENV PORT=7860
23
-
24
  EXPOSE 7860
25
 
26
  CMD ["sh", "-c", "uvicorn server:app --host 0.0.0.0 --port ${PORT}"]
 
1
  FROM python:3.11-slim
2
 
3
+ # Boas práticas de runtime
4
+ ENV PYTHONDONTWRITEBYTECODE=1 \
5
+ PYTHONUNBUFFERED=1 \
6
+ PIP_NO_CACHE_DIR=1 \
7
+ PIP_DISABLE_PIP_VERSION_CHECK=1
8
+
9
+ # Dependências básicas do sistema (certificados TLS etc.)
10
+ RUN apt-get update \
11
+ && apt-get install -y --no-install-recommends ca-certificates \
12
+ && rm -rf /var/lib/apt/lists/*
13
+
14
+ # Cria usuário padrão do HF (uid 1000)
15
  RUN useradd -m -u 1000 user
16
 
17
  WORKDIR /home/user/app
18
 
19
+ # Instala deps primeiro (melhor cache)
20
+ COPY requirements.txt ./requirements.txt
21
+ RUN python -m pip install --upgrade pip \
22
+ && python -m pip install -r requirements.txt
23
 
24
+ # Copia o código
25
+ COPY . .
26
 
27
+ # Pasta do SQLite (e garante permissão para o usuário)
28
+ RUN mkdir -p /home/user/app/data \
29
+ && chown -R user:user /home/user/app
30
 
31
  USER user
32
 
33
+ # HF expõe PORT via env; fallback 7860
34
  ENV PORT=7860
 
35
  EXPOSE 7860
36
 
37
  CMD ["sh", "-c", "uvicorn server:app --host 0.0.0.0 --port ${PORT}"]
requirements.txt CHANGED
@@ -3,17 +3,11 @@ uvicorn[standard]==0.32.1
3
  pydantic==2.10.3
4
  python-dotenv==1.0.1
5
 
6
- # CORS (frontend separado)
7
- starlette==0.41.3
8
-
9
- # Form-data / uploads (se você usa FormData em algum endpoint)
10
  python-multipart==0.0.20
11
-
12
- # HTTP client (se seu backend chama APIs externas: Groq, etc.)
13
  httpx==0.27.2
14
 
15
- # Relatórios / Markdown (se você gera MD/HTML no backend)
16
  markdown-it-py==3.0.0
17
  jinja2==3.1.5
 
18
  libsql==0.1.11
19
  numpy==2.1.3
 
3
  pydantic==2.10.3
4
  python-dotenv==1.0.1
5
 
 
 
 
 
6
  python-multipart==0.0.20
 
 
7
  httpx==0.27.2
8
 
 
9
  markdown-it-py==3.0.0
10
  jinja2==3.1.5
11
+
12
  libsql==0.1.11
13
  numpy==2.1.3