La distribución de Arch Linux proporciona una construcción reproducible de imágenes de contenedores, lo que permite verificar que los archivos binarios incluidos en la imagen se compilan a partir del código fuente proporcionado y no contienen modificaciones ocultas. Las imágenes reproducibles de Arch Linux están alojadas en Docker Hub con la etiqueta repro. Cualquiera puede compilar desde el código fuente una imagen de contenedor idéntica bit a bit a las imágenes precompiladas distribuidas por el proyecto y asegurarse de que la infraestructura de construcción de la distribución, el compilador y las herramientas de construcción no estén comprometidos.
Al crear compilaciones reproducibles se tienen en cuenta aspectos como la coincidencia exacta de las dependencias; el uso de un conjunto y versiones inalterados de herramientas de compilación; un conjunto idéntico de opciones y configuraciones predeterminadas; la preservación del orden de compilación de los archivos (aplicando los mismos métodos de ordenamiento); la desactivación de la adición de información de servicio inconstante por parte del compilador, como valores aleatorios, enlaces a rutas de archivos y datos sobre la fecha y hora de la compilación. Los errores y condiciones de carrera en las herramientas también afectan la reproducibilidad de las compilaciones.
Las imágenes reproducibles se distribuyen por separado porque, para garantizar la reproducibilidad total, no incluyen claves para el gestor de paquetes pacman. Si es necesario actualizar o instalar paquetes a través de pacman en estas imágenes, se debe ejecutar el comando para volver a crear el almacén de claves («pacman-key —init && pacman-key —populate archlinux»). Para verificar la identidad de su propia construcción con la imagen distribuida a través de Docker Hub, se pueden comparar los hashes generados por el comando «podman inspect —format ‘{{.Digest}}’ », o utilizar la herramienta diffoci.
Fuente: opennet.ru
