Em um mundo onde a eficiência e a segurança no desenvolvimento de software são cruciais, a Docker continua a inovar e fornecer ferramentas que simplificam esses processos. Uma das novidades mais interessantes é o Docker Build Checks, uma funcionalidade que visa garantir a integridade e a qualidade das imagens Docker antes de serem implantadas em ambientes de produção.
O que é o Docker Build Checks?
O Docker Build Checks é uma ferramenta que realiza verificações automáticas durante o processo de build de uma imagem Docker.
Imagina só: ele detecta problemas que podem comprometer a segurança, eficiência e conformidade das suas imagens antes de irem para produção. Ao incorporar essas checagens no pipeline de build, os desenvolvedores podem identificar e corrigir problemas antecipadamente, economizando tempo e recursos a longo prazo.
Funcionalidades Principais
Verificações de Segurança: O Docker Build Checks pode identificar vulnerabilidades conhecidas em pacotes de software incluídos na imagem. Isso ajuda a garantir que a imagem não esteja exposta a falhas de segurança que poderiam ser exploradas por atacantes.
Conformidade com Melhores Práticas: A ferramenta verifica se a imagem segue as melhores práticas de construção de imagens Docker. Isso inclui a otimização do tamanho da imagem, a minimização do uso de privilégios de root e a garantia de que as camadas da imagem estão corretamente organizadas.
Eficiência e Performance: Verificações de eficiência ajudam a garantir que a imagem seja construída de maneira a otimizar o uso de recursos. Isso pode incluir a identificação de arquivos desnecessários ou duplicados e a recomendação de práticas que acelerem o tempo de build e reduzam o tamanho final da imagem.
Teste seus builds locais
Uma ótima dica, é rodar isso localmente e conseguir validar um novo Dockerfile ou as atualizações que você fez nele.
Agora com o docker build .
recebemos os Warnings (ou erros que foi a forma que configurei o meu Dockerfile) durante o processo do build:
Validando os builds de uma forma mais rápida
Validar essas informações durante o build é ótimo, mas as vezes dependendo da complexidade dele pode demorar muito. Que tal apenas verificar nosso Dockerfile sem buildar a imagem completa? É ai que entra a nova função do check --check
. Assim fazemos apenas uma checagem do Dockerfile ao invés de fazer o build completo.
$ docker build --check .
Um detalhe importante é que a flag check
pode ser colocada em qualquer lugar, por exemplo ao final também funcionará:
$ docker build . --check
Validando os builds durante o CI
Por default, o build check não vai quebrar seu build. Mas para que seu pipeline do CI pare caso encontre algum erro devemos adicionar essas anotações no Dockerfile
.
# syntax=docker/dockerfile:1
# check=skip=none;error=true
FROM golang:1.22-alpine AS build
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 \
GOOS=linux \
go build -a -installsuffix cgo -o test-api /app/cmd/main.go
Configurações
Para essas anotações, você tem a flexibilidade de configura-las da forma que quiser - um chute do Rafa aqui é que logo menos teremos um arquivo de config assim como temos nos lints :)
Enquanto essa funcionalidade não chega, podemos configurar o skip com skip=all
or skip=none
, e também ligar ou desligar algumas configurações do check. A seguir coloquei um exemplo fazendo o skip do check do as
que esta em minúsculo e o correto seria todo maiúsculo, o FromAsCasing
:
# syntax=docker/dockerfile:1
# check=skip=FromAsCasing;error=true
FROM golang:1.22-alpine as build
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 \
GOOS=linux \
go build -a -installsuffix cgo -o test-api /app/cmd/main.go
Aqui esta o link de todas as configurações disponíveis para esses checks.
Conclusão
O Build Checks é uma adição irada ao arsenal do Docker. Com ele, você tem uma maneira automatizada e eficiente de garantir a integridade, segurança e qualidade das suas imagens Docker. Incorporar essas verificações ao seu pipeline de desenvolvimento significa software mais seguro e confiável, além de economizar tempo e recursos.
Se você ainda não testou o Docker Build Checks, está perdendo tempo! Dá uma olhada e veja como ele pode melhorar seu fluxo de trabalho. Para mais detalhes, confira a documentação oficial no site da Docker.
E deixe seus comentários caso eu consiga ajudar em algo :D
Top comments (0)