Sign inSign up

hersonpc/hdt-dashboard

By hersonpc

•Updated about 2 months ago

Imagem base para os paineis Streamlit do HDT

Image
0

1.1K

hersonpc/hdt-dashboard repository overview

⁠HDT Dashboard

Imagem Docker base para os painéis Streamlit do HDT. Vinte containers em produção usam esta imagem, então uma mudança aqui alcança todos eles de uma vez.

https://hub.docker.com/r/hersonpc/hdt-dashboard⁠

⁠Base

ItemVersão
Imagem basepython:3.14-alpine
Python3.14
TimezoneAmerica/Sao_Paulo
LocaleC.UTF-8, com datas em português via Babel

A base é Alpine porque a variante Debian carregava 165 vulnerabilidades sem correção disponível, sendo 4 críticas e 19 altas, herdadas de perl-base e tar, pacotes essenciais que não podem ser removidos.

⁠Pacotes

Revisão: 2026-07-28

PacoteVersãoDescrição
streamlit1.60.0Framework principal para dashboards
pandas3.0.5Manipulação de dados
numpy2.5.1Computação numérica
pyarrow24.0.0Suporte a Parquet e performance
plotly6.9.0Gráficos interativos
altair6.2.2Gráficos declarativos
matplotlib3.11.1Gráficos estáticos
seaborn0.13.2Visualização estatística
sqlalchemy2.0.51Conexão com bancos de dados
redis8.0.1Cliente Redis para cache
streamlit-extras1.6.0Componentes extras para Streamlit
streamlit-authenticator0.4.2Autenticação de usuários
openpyxl3.1.5Leitura e escrita de arquivos Excel
wordcloud1.9.6Geração de nuvens de palavras
httpx0.28.1Cliente HTTP async
babel2.18.0Datas e números em português
pytz2026.3Timezones

A lista completa, com as 78 dependências resolvidas e suas versões exatas, está em requirements.lock.txt.

⁠Datas em português

O locale do sistema não traduz nomes de mês em Python, porque o interpretador não chama setlocale por conta própria. Use o Babel, que formata pelo próprio Python e independe do sistema operacional:

from babel.dates import format_date
format_date(data, "d 'de' MMMM 'de' y", locale="pt_BR")   # 28 de julho de 2026
format_date(data, "EEEE", locale="pt_BR")                 # terça-feira

⁠Como as versões são fixadas

O requirements.txt declara a intenção, com os pacotes que o projeto usa de fato. O requirements.lock.txt guarda a resolução completa com versões exatas, e é ele que o Dockerfile instala. Assim, duas construções da mesma revisão produzem a mesma imagem.

⁠Construir e publicar

make lock       # regenera requirements.lock.txt a partir do requirements.txt
make build      # constrói hersonpc/hdt-dashboard:latest
make push       # envia para o Docker Hub
make img        # lista as imagens locais

Só existe a tag latest. Um push para o main faz o GitHub Actions construir, verificar que a imagem sobe e importa os pacotes compilados, e publicar sozinho, então make push é necessário apenas para publicar direto da máquina, sem passar pelo repositório.

⁠Usar

docker pull hersonpc/hdt-dashboard:latest

Nos docker-compose.yml dos painéis:

services:
  dashboard:
    image: hersonpc/hdt-dashboard:latest
    volumes:
      - .:/app
    command: streamlit run streamlit_app.py --server.port 8501 --server.address 0.0.0.0

Tag summary

Content type

Image

Digest

sha256:41273a0d9…

Size

182.7 MB

Last updated

about 2 months ago

docker pull hersonpc/hdt-dashboard