Distroless

O que é o Distroless?

O Distroless é uma imagem Docker que contém apenas o aplicativo e suas dependências, sem qualquer outro software, como shells, utilitários de pacote ou bibliotecas de linguagem. Eles são executados como usuários não privilegiados e não possuem capacidade de execução de código.

Como usar o Distroless?

Para usar o Distroless, você precisa criar uma imagem Docker multistage. A primeira etapa é criar uma imagem com todas as dependências necessárias para compilar seu aplicativo. A segunda etapa é copiar o binário do aplicativo da primeira etapa e criar uma imagem Distroless com ele.

Exemplo de uma imagem de app em go utilizando as imagens da ChainGuard:

Crie os arquivos main.go, go.mod e Dockerfile. Após isso, execute os comandos abaixo:

docker build -t distroless-go .
docker run --rm -it -p 8080:8080 distroless-go