¿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
- A
- B (Opción correcta)
- Ambos son idénticos
- 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.