Sobes.tech
Senior

Ce practici există pentru a reduce dimensiunea imaginii Docker?

sobes.tech AI

Răspuns de la AI

Pentru a reduce dimensiunea imaginii Docker, se aplică mai multe practici:

  • Utilizarea imaginilor de bază minimaliste, de exemplu, alpine în loc de ubuntu.
  • Construirea în mai multe etape (multi-stage builds), unde în primele etape se construiește aplicația, iar în imaginea finală rămâne doar runtime-ul minim cu binarul compilat.
  • Curățarea cache-urilor și a fișierelor temporare după instalarea dependențelor în Dockerfile.
  • Combinarea comenzilor RUN pentru reducerea numărului de straturi.
  • Utilizarea .dockerignore pentru a exclude fișierele inutile din contextul de build.

Exemplu de Dockerfile multi-etapă pentru Go:

# Etapa 1: Build
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Etapa 2: Runtime minim
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

Această abordare permite obținerea unei imagini compacte cu setul minim de fișiere.