Sobes.tech
Middle

Melhores práticas para Dockerfile. O que você usa?

sobes.tech IA

Resposta da IA

Práticas recomendadas principais para Dockerfile:

  • Utilizar imagens base mínimas (por exemplo, alpine) para reduzir o tamanho da imagem final.
  • Minimizar o número de camadas combinando comandos RUN com &&.
  • Fazer cache das dependências separadamente da cópia do código fonte para acelerar a construção ao alterar apenas o código.
  • Utilizar .dockerignore para excluir ficheiros desnecessários do contexto de construção.
  • Especificar explicitamente as versões dos pacotes e das imagens base para reprodutibilidade.
  • Executar os contêineres com utilizadores não privilegiados por segurança.
  • Utilizar construções multi-stage para separar a fase de construção da imagem final, reduzindo o tamanho.

Exemplo:

FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o myapp

FROM alpine:latest
RUN adduser -D appuser
USER appuser
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

Este método permite obter uma imagem compacta e segura com o mínimo de camadas.