Para nuestro proyecto necesitamos una imagen de contenedor, que servirá como punto de partda para ejecutar pruebas automatizadas en un entorno aislado. Utilizaremos Docker Hub.
- Ligereza: Una imagen más ligera tiene un tamaño más pequqeño en comparación con otras. Es beneficioso en términos de eficiencia de almacenamiento y velocidad de descarga.
- Rapidez: Una imagen rápida debería iniciar y ejecutar la aplicación de manera eficiente.
- Compatibilidad: La imagen debe ser compatible con las herramientas que estamos utilizando: herramientas.
- Mantenimiento y comunidad: Las imágenes populares y bien mantenidas reciben actualizaciones y correcciones de manera regular.
- Yarn pre-instalado: La imagen debe tener yarn preinstalado.
La velocidad de las imágenes de Docker se pueden medir en términos de: tiempo de construcción, tamaño de la imagen resultante y velocidad de ejecución de los tests.
- Alpine Linux.
- CentOS. -> Deprecated.
- Ubuntu.
- Node.
- Ligereza: Ligera.
- Rapidez: Rápida.
- Compatibilidad: Compatible.
- Mantenimiento y comunidad: Comunidad activa y mantenida.
- Yarn preinstalado: No.
- Ligereza: Moderada.
- Rapidez: Buena.
- Compatibilidad: Compatible.
- Mantenimiento y comunidad: Comunidad más grande y activa. Ampliamente mantenida y regularmente actualizada.
- Yarn preinstalado: No.
- Ligereza: Ligera.
- Rapidez: Rápida.
- Compatibilidad: Compatible.
- Mantenimiento y comunidad: Comunidad activa y mantenida.
- Yarn preinstalado: Sí.
La opción que satisface todos nuestros criterios es Node. En particular, vamos a utilizar node:20-buster-slim, que es la última versión de node basada en Debian 10 (Buster) y que utiliza una versión más liviana y optimizada de los componentes necesarios para ejecutar Node.js.