Descrição
Implementar Dockerfile multi-stage com suporte a imagens Chainguard distroless para deployments de produção mais seguros e minimalistas.
Keywords: distroless, chainguard, docker multi-stage, minimal container, security, supply chain, sigstore, sbom
Motivação
Imagens de container tradicionais incluem muitos componentes desnecessários (shell, package managers, utilitários) que aumentam a superfície de ataque e o número de vulnerabilidades potenciais.
Proposta de Implementação
Dockerfile Multi-Stage (5 stages)
| Stage |
Propósito |
builder |
Build com todas as dependências de desenvolvimento |
development |
Imagem para desenvolvimento local |
dependencies |
Estágio intermediário para deps de produção |
production |
Imagem de produção baseada em Python slim |
production-distroless |
Imagem ultra-minimalista usando Chainguard |
Arquivos a modificar
.dockerignore - Otimizar para reduzir contexto de build
Dockerfile - Adicionar os 5 estágios
Makefile - Novos comandos para build/push de imagens distroless
README.md - Documentar as imagens de produção
Benefícios do Chainguard Distroless
| Benefício |
Descrição |
| Superfície de ataque mínima |
Sem shell, sem gerenciadores de pacotes |
| Menos CVEs |
Comparado a imagens base tradicionais |
| Imagens assinadas |
Sigstore para segurança da supply chain |
| SBOM incluído |
Para compliance e auditoria |
Exemplo de uso esperado
# Build imagem de produção padrão
make docker/image/build
# Build imagem distroless
make docker/image/build/distroless
Referência
Esta melhoria já foi implementada no repositório fast-api-boilerplate-project no PR #84, podendo servir como base para esta implementação.
marcieltorres/fast-api-boilerplate-project#85
Links úteis
Descrição
Implementar Dockerfile multi-stage com suporte a imagens Chainguard distroless para deployments de produção mais seguros e minimalistas.
Keywords:
distroless,chainguard,docker multi-stage,minimal container,security,supply chain,sigstore,sbomMotivação
Imagens de container tradicionais incluem muitos componentes desnecessários (shell, package managers, utilitários) que aumentam a superfície de ataque e o número de vulnerabilidades potenciais.
Proposta de Implementação
Dockerfile Multi-Stage (5 stages)
builderdevelopmentdependenciesproductionproduction-distrolessArquivos a modificar
.dockerignore- Otimizar para reduzir contexto de buildDockerfile- Adicionar os 5 estágiosMakefile- Novos comandos para build/push de imagens distrolessREADME.md- Documentar as imagens de produçãoBenefícios do Chainguard Distroless
Exemplo de uso esperado
Referência
Esta melhoria já foi implementada no repositório fast-api-boilerplate-project no PR #84, podendo servir como base para esta implementação.
marcieltorres/fast-api-boilerplate-project#85
Links úteis