Files
ranking/backend/Dockerfile
Frederico Castro 9e6ba459a8 feat: Sistema de Ranking de Consultores CAPES - versão inicial
Backend (FastAPI + DDD):
- Arquitetura DDD com camadas Domain, Application, Infrastructure, Interface
- Integração com Elasticsearch (ATUACAPES) para dados de consultores
- Integração com Oracle (SUCUPIRA_PAINEL) para coordenações PPG
- Cálculo dos 4 componentes de pontuação (A, B, C, D)
- Cache em memória para otimização de performance
- API REST com endpoints /ranking, /ranking/detalhado, /consultor/{id}

Frontend (React + Vite):
- Interface responsiva com cards expansíveis
- Visualização detalhada de pontuação por componente
- Filtro por quantidade de consultores (Top 10, 50, 100, etc)

Docker:
- docker-compose com shared_network externa
- Backend com Oracle Instant Client
- Frontend com Vite dev server
2025-12-09 01:24:35 -03:00

32 lines
1.0 KiB
Docker

FROM python:3.11-slim
WORKDIR /app
RUN apt-get update && apt-get install -y \
gcc \
wget \
unzip \
&& (apt-get install -y libaio1t64 || apt-get install -y libaio1 || true) \
&& rm -rf /var/lib/apt/lists/*
RUN wget https://download.oracle.com/otn_software/linux/instantclient/2115000/instantclient-basic-linux.x64-21.15.0.0.0dbru.zip \
&& unzip instantclient-basic-linux.x64-21.15.0.0.0dbru.zip -d /opt/oracle \
&& rm instantclient-basic-linux.x64-21.15.0.0.0dbru.zip \
&& sh -c "echo /opt/oracle/instantclient_21_15 > /etc/ld.so.conf.d/oracle-instantclient.conf" \
&& ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 || true \
&& ldconfig
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_21_15:$LD_LIBRARY_PATH
ENV PATH=/opt/oracle/instantclient_21_15:$PATH
RUN pip install --upgrade pip
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY ./src ./src
EXPOSE 8000
CMD ["python", "-m", "uvicorn", "src.interface.api.app:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]