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.