Projeto do Agent Contas ORACLE

This commit is contained in:
2026-08-19 09:35:50 -03:00
commit 950a2bcd33
1366 changed files with 177217 additions and 0 deletions

66
Dockerfile Normal file
View File

@@ -0,0 +1,66 @@
# Estágio 1: Build
FROM python:3.13.11-slim AS builder
ARG UV_INDEX_TIMBRASIL_PASSWORD
ARG UV_INDEX_TIMBRASIL_USERNAME
# Dependências de compilação para pacotes com extensão nativa (ex.: annoy via nemoguardrails)
RUN apt-get update && apt-get install -y --no-install-recommends build-essential \
&& rm -rf /var/lib/apt/lists/*
# Instala o uv para gerenciar dependências de forma rápida e eficiente
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
WORKDIR /app
# Copia apenas os arquivos de dependências para aproveitar o cache do Docker
COPY pyproject.toml uv.lock README.md ./
COPY agent_framework_oci/libs/agent_framework ./agent_framework_oci/libs/agent_framework
# Sincroniza as dependências (sem instalar as de desenvolvimento e sem instalar o projeto local agora)
# Analisar como ter lock independente da maquina do desenvolvedor
RUN uv lock && uv sync --no-dev --no-install-project
# Estágio 2: Runtime
FROM python:3.13.11-slim
COPY tim-custom-ca.crt /usr/local/share/ca-certificates/tim-custom-ca.crt
# Instala curl para o healthcheck e cria usuário não-root
RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates \
&& rm -rf /var/lib/apt/lists/* \
&& groupadd -g 1000 appuser \
&& update-ca-certificates \
&& useradd -u 1000 -g 1000 -m appuser
ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
WORKDIR /app
# Copia o ambiente virtual criado pelo uv
COPY --from=builder /app/.venv /app/.venv
# Garante que o python use o venv por padrão
ENV PATH="/app/.venv/bin:$PATH"
# Copia o código da aplicação
# Mudamos a ordem para copiar apenas o necessário e definir permissões
COPY . .
RUN chown -R appuser:appuser /app
# Diretório padrão para configs OCI (montado via volume em runtime)
RUN mkdir -p /config && chown appuser:appuser /config
# Expõe a porta que o FastAPI utilizará
EXPOSE 8000
# Variáveis de ambiente padrão
ENV TIM_APP_HOST=0.0.0.0
ENV TIM_APP_PORT=8000
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
# Troca para o usuário não-root
USER appuser
# Comando para iniciar a aplicação
CMD ["python", "-m", "agente_contas_tim.main"]