38 lines
1.3 KiB
Docker
38 lines
1.3 KiB
Docker
# Use uma imagem base Python oficial.
|
|
# Escolha uma versão que seja compatível com suas dependências.
|
|
FROM python:3.12-slim
|
|
|
|
# Copia os arquivos de requisitos primeiro para aproveitar o cache do Docker
|
|
COPY requirements.txt ./requirements.txt
|
|
|
|
# Instala as dependências do backend
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copia o restante dos diretórios e arquivos da aplicação
|
|
|
|
COPY ./ ./
|
|
|
|
# Garante que o script de inicialização seja executável
|
|
RUN chmod +x ./entrypoint.sh
|
|
|
|
# Cria os diretórios que a API FastAPI pode precisar (se eles não existirem)
|
|
# Estes diretórios serão usados para persistência se volumes forem montados.
|
|
#RUN mkdir -p /app/faiss_index_store && \
|
|
# mkdir -p /app/uploaded_pdfs
|
|
|
|
# Expõe as portas que os aplicativos usarão
|
|
# Porta 8000 para a API FastAPI
|
|
EXPOSE 8000
|
|
# Porta 8501 para o aplicativo Streamlit
|
|
EXPOSE 8501
|
|
|
|
# Define a variável de ambiente GROQ_API_KEY.
|
|
# É ALTAMENTE RECOMENDADO passar esta variável em tempo de execução
|
|
# em vez de embuti-la aqui por questões de segurança.
|
|
# Exemplo: docker run -e GROQ_API_KEY="sua_chave_aqui" ...
|
|
# ENV GROQ_API_KEY="SUA_CHAVE_GROQ_AQUI_SE_NECESSARIO_MAS_NAO_RECOMENDADO_EMBUTIR"
|
|
|
|
# Comando para executar quando o contêiner iniciar
|
|
# Executa o script start.sh que gerencia os dois processos
|
|
CMD ["./entrypoint.sh"]
|