Repaso
English
Cloud y DevOpsIntermedioOPS-02

¿Qué orden del Dockerfile hace más rápidos los rebuilds cuando solo cambia tu código fuente?

# Option A
COPY . .
RUN pip install -r requirements.txt

# Option B
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .

Opciones

  1. A
  2. B (Opción correcta)
  3. Ambos son idénticos
  4. Ninguno usa la caché

Respuesta

B

Por qué

Docker construye una imagen por capas, una por instrucción, y reutiliza (cachea) una capa si no cambió nada de lo que depende.

En A, editar cualquier archivo fuente cambia la capa COPY . ., así que se reconstruyen todas las capas siguientes, incluido el lento pip install.

En B, las dependencias se instalan solo desde requirements.txt; esa capa se reutiliza hasta que cambien los requisitos, y solo se repite la copia final.

Recuerda

Copia primero lo que cambia poco y al final lo que cambia mucho.

Términos clave

Practica esta pregunta en Repaso