Construcción multietapa Docker

15 de marzo de 2022

Lang: cs en de es

La construcción multietapa de Docker es una característica que puede facilitar la construcción de diferentes imágenes Docker basadas en la misma base. Así puedes preparar una imagen para diferentes propósitos. Y al mismo tiempo preparar eficientemente imágenes que contengan todo lo que necesitas siendo minimalistas.

Construcción multietapa

El principio de la construcción multietapa es que tienes una base común en un archivo de configuración y luego puedes crear diferentes imágenes docker basadas en eso. Esto te permite agilizar y simplificar la creación de imágenes docker.

Imagen docker Ted para desarrollo, para pruebas o minimalista para producción.

Ejemplo

En este enlace. ejemplo multietapa de docker.
Puedes usar este proyecto de demostración para probarlo, y esta guía también está escrita en base a él.

Este comando ejecutará la imagen de compilación para el objetivo "base":

docker build --target base ./

Sin embargo, es mejor nombrar la imagen directamente

 docker build --target base ./ -t php-web-base

Build image para el target devel, al que llamaremos php-web-dev:

docker build --target devel ./ -t php-web-dev

Construye los contenedores que aparecen en el archivo docker-compose:

docker-compose -f docker-compose-prod.yml build

El contenido de docker-compose. El parámetro importante es el parámetro target, que especifica qué imagen construir y luego ejecutar.

version: '3.6'
services:
  web:
      build:
        context: ./
        objetivo: devel

Si tienes el contenedor construido y nombrado, puedes soltar la imagen docker y la consola shell como lo harías con cualquier otra imagen docker:

docker exec -it multistage-build_web_1 /bin/bash

Vídeo

Vídeo de demostración y explicación del funcionamiento de docker multistage build:

Recursos

Documentación sobre la construcción multietapa

Artículos sobre un tema similar

VMware frente a Proxmox: comparación de rendimiento
GitLab CI/CD: automatización de pruebas y despliegue de aplicaciones
Migración de VPS de VMware a Proxmox
Cambio en las licencias de VMware
Ejecución de Microsoft SQL Server en Linux
Copia de seguridad: el Proxmox Backup Server
Linux como router y cortafuegos
Cómo subir una imagen Docker al Registro Docker
Linux: gestión de volúmenes lógicos
Software RAID para Linux
Ejecutar una aplicación web detrás de un proxy
Migración de correo electrónico
Copia de seguridad de los datos al encender el ordenador
Podman
Importación de Windows a la virtualización Proxmox
Docker y correo PHP
Virtualización Proxmox
Docker y Cron
Lenovo ThinkPad X1 Carbon: puesta en servicio del módem LTE EM7544
Proyecto Yocto: Cree un sistema operativo personalizado para dispositivos integrados
Preparación de un servidor Linux para ejecutar una aplicación web en Python
Cómo solucionar el bajo rendimiento de los archivos compartidos en Docker
Cómo empezar a utilizar Docker correctamente
Instalación de Linux en un servidor HPE ProLiant DL320e dedicado
Cómo poner a prueba una aplicación web
Por qué utilizar el sistema de archivos JFS
Cómo arrancar desde un disco de 4TB con GTP usando UEFI
Sistema de archivos Btrfs
Raspberry PI
WINE - ejecución de programas Windous en Linux
Sistema operativo GNU/Linux

Boletin informativo

Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email suscripción de noticias.


+