Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
minimal — Coleção mínima de imagens de contêiner protegidas contra CVE | Kitploit
Ferramentas/GitHubGitHub/rtvkiz/minimal
Scanners de VulnerabilidadesSegurança de ContêineresAuditoria de ConfiguraçãoSegurança na NuvemDevSecOpsSegurança da Cadeia de Suprimentos
GitHubrtvkiz/minimal

minimal

Coleção mínima de imagens de contêiner protegidas contra CVE

Ver Repositório
51321há 5h 21mRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

minimal — hardened container images

Small, hardened container images, free and MIT-licensed.
Built from source with Chainguard's apko and Wolfi packages, rebuilt every six hours.
Every image is cosign-signed, ships an SPDX SBOM attestation, and carries SLSA Level 3 build provenance. You can verify all of it without an account.

🌐  Explore o catálogo completo em minimalcontainers.com  →

Build status Image Catalog License: MIT SLSA Level 3 Images: 57 Architectures

Catálogo de imagens · Verificar uma imagem · Todas as 57 imagens · Discussão no HN


Baixe e verifique em 30 segundos

O objetivo destas imagens é que você não precisa confiar em mim. Baixe uma e verifique a proveniência você mesmo:```bash

Pull. It's public — no login, no rate limit.

docker pull ghcr.io/rtvkiz/minimal-python:latest

Verify the build provenance. This proves the image was produced by the

workflow file in this repo, at a specific commit, on a GitHub-hosted runner.

gh attestation verify oci://ghcr.io/rtvkiz/minimal-python:latest --owner rtvkiz

Pull the SPDX SBOM so you can see exactly what's inside.

cosign verify-attestation --type spdxjson
--certificate-identity-regexp='https://github.com/rtvkiz/minimal/'
--certificate-oidc-issuer='https://token.actions.githubusercontent.com'
ghcr.io/rtvkiz/minimal-python:latest
| jq -r '.payload | @base64d | fromjson | .predicate' > python-sbom.spdx.json

root@kitploit:~
Mais receitas de verificação (assinatura cosign, SBOM, proveniência SLSA) estão em [`.github/SECURITY.md`](https://github.com/rtvkiz/minimal/blob/HEAD/.github/SECURITY.md).

## Como `minimal` é diferente

|  | minimal | Chainguard | Docker Hardened | Minimus / RapidFort |
|---|:---:|:---:|:---:|:---:|
| **Licença** | MIT | Proprietária | Apache-2.0 | Proprietária |
| **Custo** | $0 | ~$30k/imagem/ano | Suporte gratuito + pago | Ligação comercial |
| **Autenticação para baixar** | Não | Sim | Sim | Sim |
| **Limites de taxa** | Nenhum | Sim | Sim | Sim |
| **Receitas de construção públicas** | Sim, cada `melange.yaml` | Não | Sim, Dockerfiles | Não |
| **Assinatura Cosign + SBOM + SLSA L3** | Sim | Sim | Sim | Sim |
| **Contrato SLA, FedRAMP/STIG** | Não | Sim (pago) | Sim (pago) | Sim (pago) |

Recorra ao `minimal` se quiser imagens endurecidas sem pagar ou se inscrever, se quiser ler cada receita de construção do início ao fim, ou se quiser um modelo funcional para forkar no seu próprio catálogo interno.

Provavelmente não é a escolha certa se você precisar de um contrato com fornecedor, documentação de acreditação FedRAMP ou STIG, ou milhares de imagens no primeiro dia — essas são coisas reais que este projeto não tenta resolver.

## O que toda imagem inclui

- Uma assinatura keyless do Cosign, verificável contra o registro público de transparência Rekor.
- Um SBOM SPDX anexado como uma atestação in-toto — cada pacote, versão e licença.
- Proveniência de construção SLSA v1.0 — prova criptográfica de qual fluxo de trabalho, qual commit e qual runner produziu a imagem.
- Uma varredura diária do Grype, com resultados no [catálogo público](https://minimalcontainers.com) e na aba de Segurança do GitHub.
- Compilações nativas para `linux/amd64` e `linux/arm64`.
- Um usuário não-root por padrão (UID 65532), a menos que o upstream insista o contrário.
- Sem shell quando possível — a maioria das imagens não inclui `/bin/sh`.
- Uma cadência de reconstrução de seis horas, para que correções de CVE do Wolfi cheguem em horas, não dias.

## Imagens Disponíveis — 57 no total

| Categoria | Quantidade | Destaques |
|---|---|---|
| **Linguagens e runtimes** | 9 | python, node-slim, bun, go, java, ruby, php, dotnet, deno |
| **Bancos de dados** | 5 | mysql, mariadb, postgres-slim, sqlite, opensearch |
| **Caches, filas, mensageria** | 7 | redis-slim, valkey, memcached, kafka, rabbitmq, nats, mosquitto |
| **Servidores web e proxies** | 6 | nginx, httpd, caddy, haproxy, traefik, envoy |
| **Observabilidade** | 14 | prometheus, alertmanager, victoria-metrics, thanos, mimir, jaeger, loki, tempo, otelcol, fluent-bit, telegraf, node-exporter, blackbox-exporter, pushgateway |
| **Infraestrutura** | 7 | coredns, etcd, openbao, keycloak, qdrant, registry, consul |
| **Kubernetes, CI e IaC** | 4 | helm, kubectl, opentofu, trivy |
| **Aplicações** | 5 | jenkins, gitea, minio, rails, mailpit |

Navegue por todas as imagens — com varreduras de CVE ao vivo, todas as tags, SBOMs e proveniência de construção — em **[minimalcontainers.com](https://minimalcontainers.com)**, ou expanda a lista completa de comandos pull abaixo.

<details>
<summary><strong>Catálogo completo de imagens com comandos pull</strong></summary>

<br>

| Imagem | Comando Pull | Shell | Caso de Uso |
|-------|--------------|-------|----------|
| | | **Linguagens** | |
| Python | `docker pull ghcr.io/rtvkiz/minimal-python:latest` | Não | Aplicações Python, microsserviços |
| Node.js-slim | `docker pull ghcr.io/rtvkiz/minimal-node-slim:latest` | Não | Aplicações Node.js, JavaScript |
| Bun | `docker pull ghcr.io/rtvkiz/minimal-bun:latest` | Não | Runtime rápido para JavaScript/TypeScript |
| Go | `docker pull ghcr.io/rtvkiz/minimal-go:latest` | Não | Desenvolvimento Go, compilações CGO |
| .NET Runtime | `docker pull ghcr.io/rtvkiz/minimal-dotnet:latest` | Não | Runtime .NET 10 para aplicações |
| Java | `docker pull ghcr.io/rtvkiz/minimal-java:latest` | Não | OpenJDK 26 JRE para aplicações Java |
| Ruby | `docker pull ghcr.io/rtvkiz/minimal-ruby:latest` | Não | Runtime Ruby 4.0 (compilado do código-fonte) |
| PHP | `docker pull ghcr.io/rtvkiz/minimal-php:latest` | Não | CLI PHP 8.5 (compilado do código-fonte) |
| Rails | `docker pull ghcr.io/rtvkiz/minimal-rails:latest` | Não | Ruby 4.0 + Rails 8.1 (compilado do código-fonte) |
| Deno | `docker pull ghcr.io/rtvkiz/minimal-deno:latest` | Não | Runtime seguro para TypeScript/JavaScript |
| | | **Bancos de dados** | |
| MySQL | `docker pull ghcr.io/rtvkiz/minimal-mysql:latest` | Sim | MySQL LTS 8.4.x, compilado do código-fonte |
| MariaDB | `docker pull ghcr.io/rtvkiz/minimal-mariadb:latest` | Sim | MariaDB LTS 11.4.x, compilado do código-fonte |
| PostgreSQL-slim | `docker pull ghcr.io/rtvkiz/minimal-postgres-slim:latest` | Não | Banco de dados relacional |
| SQLite | `docker pull ghcr.io/rtvkiz/minimal-sqlite:latest` | Não | CLI de banco de dados SQL embutido |
| OpenSearch | `docker pull ghcr.io/rtvkiz/minimal-opensearch:latest` | Não* | OpenSearch 3.x — pesquisa e análise |
| | | **Caches, Filas, Mensageria** | |
| Redis-slim | `docker pull ghcr.io/rtvkiz/minimal-redis-slim:latest` | Não | Armazenamento de dados em memória |
| Memcached | `docker pull ghcr.io/rtvkiz/minimal-memcached:latest` | Não | Cache em memória (compilado do código-fonte) |
| Valkey | `docker pull ghcr.io/rtvkiz/minimal-valkey:latest` | Não | Fork do Redis licenciado sob BSD (LF) |
| Kafka | `docker pull ghcr.io/rtvkiz/minimal-kafka:latest` | Sim | Apache Kafka 4.x, modo KRaft |
| RabbitMQ | `docker pull ghcr.io/rtvkiz/minimal-rabbitmq:latest` | Sim | Broker AMQP RabbitMQ 4.x |
| NATS | `docker pull ghcr.io/rtvkiz/minimal-nats:latest` | Não | Servidor NATS com JetStream |
| Mosquitto | `docker pull ghcr.io/rtvkiz/minimal-mosquitto:latest` | Não | Broker MQTT Eclipse Mosquitto (EPL-2.0/EDL-1.0) |
| | | **Servidores Web e Proxies** | |
| Nginx | `docker pull ghcr.io/rtvkiz/minimal-nginx:latest` | Não | Proxy reverso, arquivos estáticos |
| HTTPD | `docker pull ghcr.io/rtvkiz/minimal-httpd:latest` | Talvez* | Servidor web Apache |
| Caddy | `docker pull ghcr.io/rtvkiz/minimal-caddy:latest` | Não | Servidor web com HTTPS automático |
| HAProxy | `docker pull ghcr.io/rtvkiz/minimal-haproxy:latest` | Não | Balanceador de carga TCP/HTTP |
| Traefik | `docker pull ghcr.io/rtvkiz/minimal-traefik:latest` | Não | Proxy reverso nativo para nuvem |
| Envoy | `docker pull ghcr.io/rtvkiz/minimal-envoy:latest` | Não | Proxy de serviço e balanceador de carga |
| | | **Observabilidade** | |
| Prometheus | `docker pull ghcr.io/rtvkiz/minimal-prometheus:latest` | Não | Coleta de métricas e alertas |
| VictoriaMetrics | `docker pull ghcr.io/rtvkiz/minimal-victoria-metrics:latest` | Não | Armazenamento de métricas de alto desempenho |
| Jaeger | `docker pull ghcr.io/rtvkiz/minimal-jaeger:latest` | Não | Rastreamento distribuído (v2) |
| Loki | `docker pull ghcr.io/rtvkiz/minimal-loki:latest` | Não | Agregação de logs (Grafana Labs) |
| Tempo | `docker pull ghcr.io/rtvkiz/minimal-tempo:latest` | Não | Backend de rastreamento distribuído (Grafana Labs, AGPL) |
| OTel Collector | `docker pull ghcr.io/rtvkiz/minimal-otelcol:latest` | Não | Núcleo do OpenTelemetry Collector |
| Fluent Bit | `docker pull ghcr.io/rtvkiz/minimal-fluent-bit:latest` | Não | Processador de logs leve |
| Node Exporter | `docker pull ghcr.io/rtvkiz/minimal-node-exporter:latest` | Não | Métricas de hardware e SO do host para Prometheus |
| Blackbox Exporter | `docker pull ghcr.io/rtvkiz/minimal-blackbox-exporter:latest` | Não | Sondagem de endpoints para Prometheus (HTTP/DNS/TCP/ICMP) |
| Pushgateway | `docker pull ghcr.io/rtvkiz/minimal-pushgateway:latest` | Não | Push de métricas para Prometheus em jobs em lote |
| | | **Infraestrutura** | |
| CoreDNS | `docker pull ghcr.io/rtvkiz/minimal-coredns:latest` | Não | DNS padrão do Kubernetes |
| etcd | `docker pull ghcr.io/rtvkiz/minimal-etcd:latest` | Não | Armazenamento chave-valor distribuído |
| OpenBao | `docker pull ghcr.io/rtvkiz/minimal-openbao:latest` | Não | Gerenciamento de segredos (fork do Vault) |
| Keycloak | `docker pull ghcr.io/rtvkiz/minimal-keycloak:latest` | Sim | Gerenciamento de identidade e acesso |
| Qdrant | `docker pull ghcr.io/rtvkiz/minimal-qdrant:latest` | Não | Banco de dados vetorial para IA/ML (Rust) |
| Registry | `docker pull ghcr.io/rtvkiz/minimal-registry:latest` | Não | Registro de distribuição OCI (Docker Registry v2), compilado do código-fonte |
| Consul | `docker pull ghcr.io/rtvkiz/minimal-consul:latest` | Não | Descoberta de serviços HashiCorp Consul + KV (BUSL-1.1) |
| | | **Kubernetes e CI** | |
| Helm | `docker pull ghcr.io/rtvkiz/minimal-helm:latest` | Não | CLI Helm 3 para implantação de charts do Kubernetes |
| kubectl | `docker pull ghcr.io/rtvkiz/minimal-kubectl:latest` | Não | CLI kubectl para operações em clusters Kubernetes |
| | | **Aplicações** | |
| Jenkins | `docker pull ghcr.io/rtvkiz/minimal-jenkins:latest` | Sim | Automação CI/CD |
| Gitea | `docker pull ghcr.io/rtvkiz/minimal-gitea:latest` | Sim | Serviço Git auto-hospedado |
| MinIO | `docker pull ghcr.io/rtvkiz/minimal-minio:latest` | Não | Armazenamento de objetos compatível com S3 |
| Mailpit | `docker pull ghcr.io/rtvkiz/minimal-mailpit:latest` | Não | Teste de SMTP e email para desenvolvedores, compilado do código-fonte |
| | | **IA / ML** | |
| CUDA Python | *desabilitado* | Não | Python + CUDA 12.9 + cuDNN 9.10 (compilação pausada, código mantido) |

*\*HTTPD, Jenkins, Kafka, MySQL, OpenSearch, Gitea, Keycloak incluem shell (`sh`/`busybox`/`bash`) via dependências transitivas do Wolfi ou porque o entrypoint upstream exige. O CI trata a presença de shell como informativa.*

</details>

## Quick Start```bash
# Python app
docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-python:latest /app/main.py

# Nginx reverse proxy
docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-nginx:latest

# PostgreSQL
docker run -d -p 5432:5432 -v pgdata:/var/lib/postgresql/data \
  ghcr.io/rtvkiz/minimal-postgres-slim:latest

# Redis
docker run -d -p 6379:6379 ghcr.io/rtvkiz/minimal-redis-slim:latest

# Kafka (KRaft mode — auto-initializes storage on first boot)
docker run -d -p 9092:9092 -v kafkadata:/var/kafka/data \
  ghcr.io/rtvkiz/minimal-kafka:latest
Mais exemplos de docker run (Node, Go, MySQL, MariaDB, Java, .NET, PHP, Rails, RabbitMQ, Gitea, …)


```bash

Node.js

docker run --rm -v $(pwd):/app -w /app ghcr.io/rtvkiz/minimal-node-slim:latest index.js

Bun

docker run --rm ghcr.io/rtvkiz/minimal-bun:latest --version

Go

docker run --rm -v $(pwd):/app -w /app ghcr.io/rtvkiz/minimal-go:latest build -o /tmp/app .

HTTPD

docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-httpd:latest

Jenkins

docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home ghcr.io/rtvkiz/minimal-jenkins:latest

MySQL

docker run -d -p 3306:3306 -v mysqldata:/var/lib/mysql ghcr.io/rtvkiz/minimal-mysql:latest

Memcached

docker run -d -p 11211:11211 ghcr.io/rtvkiz/minimal-memcached:latest

SQLite

docker run --rm -v $(pwd):/data ghcr.io/rtvkiz/minimal-sqlite:latest /data/mydb.sqlite "SELECT sqlite_version();"

.NET

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-dotnet:latest /app/myapp.dll

Cronograma de atualização

AcionadorQuandoPropósito
AgendadoA cada 6 horasCapturar os patches CVE mais recentes do Wolfi
PushAo mesclar na

Os resultados da varredura de vulnerabilidades aparecem no catálogo ao vivo, no resumo do job e na aba GitHub Security.

Rastreamento upstream automatizado

Imagens construídas a partir da fonte são rastreadas por workflows dedicados que verificam o upstream diariamente e abrem PRs:

Workflows de atualização por imagem (21 no total)
Especificações das imagens (versões, usuários, entrypoints)

Construir localmente```bash

Prerequisites

go install chainguard.dev/apko@latest go install chainguard.dev/melange@latest brew install anchore/grype/grype

Build & test a specific image

make python make test-python

Build everything

make build

Scan for CVEs

make scan

root@kitploit:~
See the [Makefile](https://github.com/rtvkiz/minimal/blob/HEAD/Makefile) for the full target list.

## Estrutura do projeto

<details>
<summary><strong>Layout do repositório</strong></summary>

<br>```
minimal/
├── <image>/
│   ├── apko/<name>.yaml          # final image config
│   ├── melange.yaml              # source build (optional)
│   └── test.sh                   # smoke test
├── .github/
│   ├── SECURITY.md               # disclosure policy + verification recipes
│   └── workflows/
│       ├── build.yml             # main CI pipeline (6h rebuilds)
│       ├── patch-go-deps.yml     # daily Go transitive CVE patching
│       ├── update-<image>.yml    # per-image upstream version tracking
│       └── update-wolfi-packages.yml
├── Makefile
├── README.md
├── CONTRIBUTING.md
└── LICENSE

Status e roteiro

Recentemente adicionado:

  • Assinaturas sem chave do Cosign em cada imagem.
  • SBOMs SPDX anexados como atestações in-toto, verificáveis com cosign verify-attestation.
  • Proveniência de construção SLSA v1.0, verificável com gh attestation verify.
  • Um painel público de CVEs com detalhamentos por imagem.
  • Uma cadência de reconstrução de seis horas, além de correção diária de CVEs transitivos do Go.

A seguir:

  • Declarações VEX para CVEs que não são realmente exploráveis em nossas imagens, para que o painel pare de mostrar ruído.
  • Consolidando os fluxos de trabalho de atualização por imagem em um trabalho orientado por matriz.
  • Imagens de AI/ML de nicho (variantes Python com suporte a CUDA) — há uma discussão no HN onde isso surgiu e parece valer a pena explorar.

O que este projeto não é:

  • Mantido por uma única pessoa, portanto não há SLA do fornecedor nem plantão de sobreaviso.
  • Não é credenciado FedRAMP / FIPS / STIG. A proveniência verificável e os SBOMs ajudam em auditorias, mas não substituem a papelada.

Contribuição

PRs são bem-vindos. CONTRIBUTING.md contém a configuração de construção, as convenções de imagem e a lista de verificação de validação local que executo antes de enviar.

Se você encontrar um problema de segurança, use o relatório privado de vulnerabilidade do GitHub em vez de abrir uma issue pública. A política de divulgação e o cronograma de resposta estão em .github/SECURITY.md.

Licença

MIT — veja LICENSE.

As imagens de contêiner incluem pacotes do Wolfi e outras fontes, cada um com suas próprias licenças (Apache-2.0, MIT, GPL, LGPL, BSD, etc.). As informações completas de licença estão no SBOM de cada imagem:```bash cosign download sbom ghcr.io/rtvkiz/minimal-python:latest | jq '.packages[].licenseConcluded'

root@kitploit:~
Baixar ferramenta

Java

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-java:latest -jar /app/myapp.jar

PHP

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-php:latest /app/index.php

Rails

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-rails:latest -e "require 'rails'; puts Rails.version"

RabbitMQ

docker run -d -p 5672:5672 -v rabbitmqdata:/var/lib/rabbitmq ghcr.io/rtvkiz/minimal-rabbitmq:latest

Gitea

docker run -d -p 3000:3000 -v giteadata:/data/gitea ghcr.io/rtvkiz/minimal-gitea:latest

root@kitploit:~
</details>

## Usando em produção

**Fixar em tags de versão imutáveis.** Cada imagem é publicada com duas tags:

| Tag | Formato | Exemplo | Mutável |
|---|---|---|---|
| Versão | `VERSION-rEPOCH` | `ghcr.io/rtvkiz/minimal-redis-slim:8.4.1-r0` | Não |
| Última | `latest` | `ghcr.io/rtvkiz/minimal-redis-slim:latest` | Sim |

### Variantes de desenvolvimento (`:latest-dev`)

A maioria das imagens publicam um complemento `-dev` construído a partir da **mesma fonte que a produção** — mesma versão do runtime, mesmo conjunto de pacotes ajustado — além de shell, gerenciador de pacotes, conjunto de ferramentas de compilação e ferramentas de depuração apropriadas para a imagem. Destinado a estágios de build em CI e depuração dentro do pod, **não para implantação em produção**.

Uso típico em multi-estágio:```dockerfile
FROM ghcr.io/rtvkiz/minimal-ruby:latest-dev AS build
WORKDIR /work
COPY Gemfile Gemfile.lock ./
RUN bundle install

FROM ghcr.io/rtvkiz/minimal-ruby:latest
COPY --from=build /work /work

Para obter um shell interativo, substitua o entrypoint (imagens de desenvolvimento mantêm o entrypoint de produção para compatibilidade direta):```bash docker run -it --entrypoint /bin/sh ghcr.io/rtvkiz/minimal-:latest-dev docker run -it --entrypoint /bin/bash ghcr.io/rtvkiz/minimal-:latest-dev

root@kitploit:~
As variantes de desenvolvimento compartilham o pipeline de assinatura, SBOM e proveniência SLSA da imagem de produção. Elas **não são rastreadas no painel de CVE público** — elas intencionalmente entregam uma superfície de ataque maior. Consulte [`.github/SECURITY.md`](https://github.com/rtvkiz/minimal/blob/HEAD/.github/SECURITY.md#dev-variants--dev-tags) para a política e [`docs/dev-variants/CONVENTIONS.md`](https://github.com/rtvkiz/minimal/blob/HEAD/docs/dev-variants/CONVENTIONS.md) para as regras de composição do pacote.

**Em distribuição hoje:** 57 de 57 variantes de desenvolvimento — cada imagem no catálogo agora oferece um acompanhante `:latest-dev` construído a partir da mesma fonte que a produção.

<details>
<summary><strong>Status da variante de desenvolvimento por imagem</strong></summary>

<br>

Legenda: ✅ Em distribuição `:latest-dev` · 🚧 Em andamento · 📝 Planejado

As categorias seguem os três modelos em [`docs/dev-variants/templates/`](https://github.com/rtvkiz/minimal/blob/HEAD/docs/dev-variants/templates/) (tempo de execução / daemon / servidor). A coluna "Referência" mostra onde espelhamos o conjunto de pacotes `<image>-public/devConfigs` público da Chainguard; **próprio** significa que a Chainguard fornece uma imagem exclusiva para Enterprise e nós projetamos a composição de desenvolvimento nós mesmos.

| Imagem | Categoria | Referência | Status |
|---|---|---|---|
| ruby | tempo de execução | Chainguard `ruby-public` | ✅ |
| python | tempo de execução | Chainguard `python-public` | ✅ |
| node-slim | tempo de execução | Chainguard `node-public` | ✅ |
| go | tempo de execução | Chainguard `go-public` | ✅ |
| java | tempo de execução | Chainguard `jdk-public` | ✅ |
| dotnet | tempo de execução | Chainguard `dotnet-runtime-10-public` | ✅ |
| php | tempo de execução | próprio (composer adiado — veja PR) | ✅ |
| rails | tempo de execução | próprio (derivado do ruby) | ✅ |
| bun | tempo de execução | próprio | ✅ |
| deno | tempo de execução | próprio | ✅ |
| postgres-slim | daemon | Chainguard `postgres-public` | ✅ |
| mariadb | daemon | Chainguard `mariadb-public` | ✅ |
| mysql | daemon | próprio | ✅ |
| redis-slim | daemon | Chainguard `redis-public` | ✅ |
| valkey | daemon | Chainguard `valkey-public` | ✅ |
| memcached | daemon | próprio | ✅ |
| sqlite | daemon | próprio | ✅ |
| opensearch | daemon | próprio | ✅ |
| kafka | daemon | próprio | ✅ |
| rabbitmq | daemon | próprio | ✅ |
| nats | daemon | próprio | ✅ |
| etcd | daemon | próprio | ✅ |
| qdrant | daemon | próprio | ✅ |
| nginx | servidor | Chainguard `nginx-public` | ✅ |
| haproxy | servidor | Chainguard `haproxy-public` | ✅ |
| minio | servidor | Chainguard `minio-client-public` (servidor próprio) | ✅ |
| httpd | servidor | próprio | ✅ |
| caddy | servidor | próprio | ✅ |
| traefik | servidor | próprio | ✅ |
| envoy | servidor | próprio | ✅ |
| prometheus | servidor | próprio | ✅ |
| victoria-metrics | servidor | próprio | ✅ |
| jaeger | servidor | próprio | ✅ |
| otelcol | servidor | próprio | ✅ |
| loki | servidor | próprio | ✅ |
| fluent-bit | servidor | próprio | ✅ |
| node-exporter | servidor | próprio | ✅ |
| blackbox-exporter | servidor | próprio | ✅ |
| pushgateway | servidor | próprio | ✅ |
| coredns | servidor | próprio | ✅ |
| gitea | servidor | próprio | ✅ |
| jenkins | servidor | próprio | ✅ |
| keycloak | servidor | próprio | ✅ |
| openbao | servidor | próprio | ✅ |
| registry | servidor | Chainguard `registry-public` | ✅ |
| mailpit | servidor | próprio (Chainguard não fornece nenhum mailpit público) | ✅ |
| consul | servidor | próprio (Chainguard não fornece nenhum consul público; BUSL-1.1) | ✅ |
| tempo | servidor | próprio (Chainguard não fornece nenhum tempo público; AGPL-3.0) | ✅ |
| mosquitto | daemon | próprio (Chainguard não fornece nenhum mosquitto público; EPL-2.0/EDL-1.0) | ✅ |

</details>```dockerfile
# Production Dockerfile — pin by version tag, ideally by digest
FROM ghcr.io/rtvkiz/minimal-go:1.26.0-r0 AS build
WORKDIR /src
COPY . .
RUN go build -o /out/app

FROM ghcr.io/rtvkiz/minimal-python:3.14.0-r0
COPY --from=build /out/app /usr/bin/app
ENTRYPOINT ["/usr/bin/app"]

Impor assinatura + proveniência no Kubernetes com sigstore-policy-controller ou Kyverno:```yaml

Kyverno ClusterPolicy — only allow signed minimal-* images

apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: verify-minimal-images spec: validationFailureAction: Enforce rules: - name: check-signature match: any: - resources: kinds: [Pod] verifyImages: - imageReferences: - "ghcr.io/rtvkiz/minimal-" attestors: - entries: - keyless: subject: "https://github.com/rtvkiz/minimal/" issuer: "https://token.actions.githubusercontent.com"

root@kitploit:~
O sufixo `-r0` é o número de revisão — é redefinido para `r0` a cada incremento de versão upstream, incrementa (`r1`, `r2`, …) para reconstruções da mesma versão upstream (por exemplo, patches de dependência). As tags de versão antigas são preservadas entre reconstruções.

## Pipeline de build

<details>
<summary><strong>Diagrama do pipeline</strong></summary>

<br>```
┌─────────────────────────────────────────────────────────────────────────────┐
│                            BUILD PIPELINE                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  Signing Keys:                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  PRs: keygen job (ephemeral) │ Main: repository secrets (persistent)│    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                              │                                              │
│                              ▼                                              │
│  ┌─────────────────────────────┐    ┌─────────────────────────────────────┐ │
│  │  melange-build              │    │      build-apko                     │ │
│  │  Native ARM64 runners       │    │      Wolfi pre-built packages       │ │
│  │  ┌────────┐  ┌────────────┐ │    │  ┌─────────┐     ┌───────────────┐  │ │
│  │  │ x86_64 │  │  aarch64   │ │    │  │  Wolfi  │────►│ apko publish  │  │ │
│  │  │ ubuntu │  │ ubuntu-arm │ │    │  │ packages│     │ (multi-arch)  │  │ │
│  │  └────┬───┘  └─────┬──────┘ │    │  └─────────┘     └───────┬───────┘  │ │
│  │       └─────┬──────┘        │    │                          │          │ │
│  │             ▼               │    └──────────────────────────│──────────┘ │
│  │     ┌──────────────┐        │                               │            │
│  │     │   artifacts  │        │                               │            │
│  │     │ (x86+arm64)  │        │                               │            │
│  │     └──────┬───────┘        │                               │            │
│  └────────────│────────────────┘                               │            │
│               ▼                                                │            │
│  ┌─────────────────────────────┐                               │            │
│  │  build-melange              │                               │            │
│  │  ┌─────────┐ ┌────────────┐ │                               │            │
│  │  │  merge  │►│   apko     │─┼───────────────────────────────┤            │
│  │  │ packages│ │  publish   │ │                               │            │
│  │  └─────────┘ └────────────┘ │                               │            │
│  └─────────────────────────────┘                               │            │
│                                                                ▼            │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                     Verification & Attestation                       │   │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌─────────────────────┐   │   │
│  │  │  Grype   │─►│   Test   │─►│  cosign  │─►│  SBOM + SLSA L3     │   │   │
│  │  │ CVE scan │  │  image   │  │   sign   │  │    attestations     │   │   │
│  │  └──────────┘  └──────────┘  └──────────┘  └─────────────────────┘   │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  Note: PRs build and test but do not publish. Only main branch publishes.   │
└─────────────────────────────────────────────────────────────────────────────┘
main
Implantar alterações de configuração
ManualWorkflow dispatchReconstruções de emergência
WorkflowObservaO que faz
update-jenkins.ymlLançamentos LTS do JenkinsAtualiza a versão na configuração do melange, Makefile, build.yml
update-redis.ymlLançamentos do Redis no GitHubAtualiza a versão e SHA256
update-mysql.ymlTags do MySQL LTS (8.4.x) no GitHubAtualiza a versão e SHA256
update-memcached.ymlLançamentos do Memcached no GitHubAtualiza a versão e SHA256
update-kafka.ymlTags do Apache Kafka 4.x no GitHubAtualiza a versão e SHA512
update-php.ymlAPI de lançamentos do php.netAtualiza a versão e SHA256; abre issue para novas séries minor/major
update-rails.ymlAPI RubyGems + tags do Ruby no GitHubAtualiza a gem Rails e a versão fonte do Ruby independentemente
update-rabbitmq.ymlLançamentos do RabbitMQ no GitHubAtualiza a versão e SHA256
update-minio.ymlLançamentos do MinIO no GitHubAtualiza a tag de lançamento, versão baseada em data e SHA256
update-victoria-metrics.ymlLançamentos do VictoriaMetrics no GitHubAtualiza a versão e SHA256
update-jaeger.ymlLançamentos do Jaeger v2.x no GitHubAtualiza a versão e SHA256; avisa sobre mudanças na versão major
update-otelcol.ymlLançamentos estáveis do OTel CollectorAtualiza a versão e SHA256; ignora pré-lançamentos
update-qdrant.ymlLançamentos do Qdrant v1.x no GitHubAtualiza a versão e SHA256
update-etcd.ymlLançamentos do etcd v3.x no GitHubAtualiza a versão e SHA256
update-opensearch.ymlLançamentos do OpenSearch 3.x no GitHubAtualiza a versão no Makefile e README
update-gitea.ymlTags do Gitea v1.x no GitHubAtualiza a versão e SHA256
update-coredns.ymlTags do CoreDNS v1.x no GitHubAtualiza a versão e SHA256
update-openbao.ymlTags do OpenBao v2.x no GitHubAtualiza a versão e SHA256
update-loki.ymlTags do Loki v3.x no GitHubAtualiza a versão e SHA256
update-fluent-bit.ymlTags do Fluent Bit v5.x no GitHubAtualiza a versão e SHA256
update-keycloak.ymlTags do Keycloak 26.x no GitHubAtualiza a versão e SHA256
update-wolfi-packages.ymlWolfi APKINDEXDetecta novas versões de Python, Node, Go, .NET, Java, PostgreSQL, Deno

Atualizações de patch são auto-PR e validadas pelo CI. Bumps menores/maiores criam uma Issue no GitHub com uma checklist de upgrade manual.

ImagemVersãoUsuárioEntrypointWorkdir
Python3.14.xnonroot (65532)/usr/bin/python3/app
Node.js-slim25.xnonroot (65532)/usr/bin/dumb-init -- /usr/bin/node/app
Bunlatestnonroot (65532)/usr/bin/bun/app
Go1.26.xnonroot (65532)/usr/bin/go/app
Nginxmainlinenginx (65532)/usr/sbin/nginx -g "daemon off;"/
HTTPD2.4.xwww-data (65532)/usr/sbin/httpd -DFOREGROUND/var/www/localhost/htdocs
Jenkins2.555.x LTSjenkins (1000)tini -- java -jar jenkins.war/var/jenkins_home
Redis8.6.xredis (65532)/usr/bin/redis-server/
MySQL8.4.xmysql (65532)/usr/bin/docker-entrypoint.sh/
MariaDB11.4.xmariadb (65532)/usr/bin/mariadbd/var/lib/mysql
Memcached1.6.xmemcached (65532)/usr/bin/memcached/
PostgreSQL18.xpostgres (70)/usr/bin/postgres/
SQLite3.51.xnonroot (65532)/usr/bin/sqlite3/data
.NET Runtime10.xnonroot (65532)/usr/bin/dotnet/app
Java26.xnonroot (65532)/usr/bin/java/app
Ruby4.0.xnonroot (65532)/usr/bin/ruby/work
PHP8.5.xnonroot (65532)/usr/bin/php/app
RailsRuby 4.0.x + Rails 8.1.xnonroot (65532)/usr/bin/ruby/app
Kafka4.2.xkafka (65532)/usr/bin/kafka-entrypoint.sh/
RabbitMQ4.3.xrabbitmq (65532)/opt/rabbitmq/sbin/rabbitmq-server/
NATSlatestnonroot (65532)/usr/bin/nats-server/
Valkeylatestnonroot (65532)/usr/bin/valkey-server/
MinIORELEASE.2025-10-15minio (65532)/usr/bin/minio server --console-address :9001 /data/data
OpenSearch3.7.0opensearch (65532)/usr/share/opensearch/opensearch-docker-entrypoint.sh/usr/share/opensearch/data
etcd3.6.xnonroot (65532)/usr/bin/etcd/var/lib/etcd
VictoriaMetrics1.142.xnonroot (65532)/usr/bin/victoria-metrics/
Jaeger2.18.xnonroot (65532)/usr/bin/jaeger/
OTel Collector0.151.xnonroot (65532)/usr/bin/otelcol/
Qdrant1.17.xnonroot (65532)/usr/bin/qdrant/qdrant
Deno2.xnonroot (65532)/usr/bin/deno/app
Gitea1.26.xgitea (65532)/usr/bin/gitea web --config /etc/gitea/app.ini/var/lib/gitea
CoreDNS1.14.xnonroot (65532)/usr/bin/coredns/
OpenBao2.5.xopenbao (65532)/usr/bin/bao server/openbao/data
Keycloak26.6.xkeycloak (65532)/opt/keycloak/bin/kc.sh start-dev/opt/keycloak/data
Loki3.6.xloki (65532)/usr/bin/loki/loki
Fluent Bit5.0.xnonroot (65532)/usr/bin/fluent-bit/