Compilaciones multietapa
Hay lenguajes de programación (como Go, Rust o C++) que hay que compilar antes de ejecutarlos — un compilador es una herramienta que traduce el código fuente que escribió un programador a un solo programa que la máquina puede ejecutar directamente (un archivo binario). En una compilación multietapa
Cocinas en una cocina grande y desordenada con muchas ollas e ingredientes crudos — y luego le envías al cliente solo el plato terminado, sin las ollas y sin las sobras.
- compilador
- Una herramienta que traduce el código fuente que escribió un programador en un programa que la máquina puede ejecutar directamente (un archivo binario). Los lenguajes compilados como Go, Rust y C++ lo necesitan para construir el programa — pero no para ejecutarlo.
- build stage
- La primera etapa de una compilación multietapa, basada en una imagen con un toolchain completo (compilador, librerías), en la que se compila la aplicación hasta obtener un artifact final.
- runtime stage
- La etapa final, basada en una imagen pequeña (por ejemplo alpine), que contiene solo el artifact listo y lo necesario para ejecutarlo — sin las herramientas de construcción.
- COPY --from
- Una instrucción que copia archivos de una etapa anterior (por nombre o número) a la etapa actual, permitiendo elegir solo el artifact final y dejar atrás el resto de la construcción.