Construir una imagen para crear caché de construcción
En este paso, construiremos una imagen simple de Docker para generar algo de caché de construcción (build cache). La caché de construcción de Docker es un mecanismo que acelera el proceso de construcción al reutilizar capas de builds anteriores. Cuando construyes una imagen de Docker, cada instrucción en el Dockerfile crea una capa. Si una instrucción no ha cambiado desde el último build, Docker puede reutilizar la capa existente en lugar de reconstruirla.
Primero, creemos un directorio para nuestro proyecto y accedamos a él.
mkdir ~/project/docker-cache-demo
cd ~/project/docker-cache-demo
Ahora, crearemos un Dockerfile simple. Este Dockerfile copiará un archivo en la imagen y luego ejecutará un comando.
nano Dockerfile
Añade el siguiente contenido al Dockerfile
:
FROM ubuntu:latest
COPY . /app
RUN echo "Hello, Docker Cache!" > /app/message.txt
CMD ["cat", "/app/message.txt"]
Guarda y cierra el archivo.
A continuación, creemos un archivo simple que copiaremos en la imagen.
nano message.txt
Añade algún contenido a message.txt
:
This is a test message.
Guarda y cierra el archivo.
Ahora, construiremos la imagen de Docker. Etiquetaremos la imagen como cache-demo
.
docker build -t cache-demo .
Verás una salida que indica que Docker está construyendo la imagen paso a paso. Cada paso corresponde a una instrucción en el Dockerfile. Docker descargará la imagen ubuntu:latest
si no está presente, copiará el archivo message.txt
y luego ejecutará el comando echo
.
Una vez completado el build, puedes verificar que la imagen se creó listando las imágenes disponibles.
docker images
Deberías ver cache-demo
en la lista de imágenes.
Ahora, construyamos la imagen nuevamente sin hacer cambios en el Dockerfile o message.txt
.
docker build -t cache-demo .
Esta vez, notarás que el proceso de construcción es mucho más rápido. Docker reutiliza las capas existentes del build anterior porque las instrucciones en el Dockerfile y el contenido de message.txt
no han cambiado. La salida mostrará "Using cache" para la mayoría de los pasos. Esto demuestra cómo funciona la caché de construcción de Docker para acelerar builds posteriores.