Lista de verificación de migración
Tabla de contenidos
Usa esta lista de verificación para asegurarte de abordar las consideraciones clave al migrar a Docker Hardened Images.
Consideraciones de migración
| Elemento | Acción requerida |
|---|---|
| Imagen base | Actualiza las instrucciones FROM de tu Dockerfile para hacer referencia a una Docker Hardened Image en lugar de tu imagen base actual. |
| Gestión de paquetes | Instala paquetes solo en imágenes con la etiqueta dev durante las etapas de compilación. Usa apk para imágenes basadas en Alpine o apt para imágenes basadas en Debian. Copia los artefactos necesarios a tu etapa de ejecución, ya que las imágenes de ejecución no incluyen gestores de paquetes. |
| Usuario no root | Verifica que todos los archivos y directorios que necesita tu aplicación tengan permisos de lectura y escritura para el usuario no root (UID 65532), ya que las imágenes de ejecución se ejecutan como no root por defecto. |
| Compilación multi-stage | Usa imágenes con la etiqueta dev o sdk para las etapas de compilación en las que necesites herramientas de compilación y gestores de paquetes. Usa imágenes que no sean dev para tu etapa final de ejecución. |
| Certificados TLS | Elimina cualquier paso que instale ca-certificates, ya que las DHI incluyen ca-certificates por defecto. |
| Puertos | Configura tu aplicación para que escuche en el puerto 1025 o superior dentro del contenedor, ya que el usuario no root no puede enlazarse a puertos privilegiados (inferiores a 1024) en Kubernetes o en versiones de Docker Engine anteriores a la 20.10. |
| Punto de entrada | Comprueba el punto de entrada de la DHI elegida usando docker inspect o la documentación de la imagen. Actualiza las instrucciones ENTRYPOINT o CMD de tu Dockerfile si tu aplicación depende de un punto de entrada diferente. |
| Sin shell | Mueve cualquier comando de shell (RUN, SHELL) a las etapas de compilación utilizando imágenes con la etiqueta dev. Las imágenes de ejecución no incluyen una shell, así que copia todos los artefactos necesarios desde la etapa de compilación. |