Aunque la mayor parte del tiempo estoy desarrollando aplicaciones Java y simplemente estoy usando Maven, por lo que mis compilaciones deberían ser reproducibles (al menos eso es lo que dice Maven).
Pero supongamos que está compilando un programa C++ o algo un poco más complicado, ¿debería compilar dentro de la ventana acoplable?
O, idealmente, use vagabundos u otra tecnología para producir construcciones reproducibles.
¿Cómo gestionas la compilación reproducible con Docker?
Puede, pero no en su imagen final, ya que eso significaría una imagen mucho más grande de lo necesario: incluiría toda la herramienta de compilación, en lugar de limitarse solo a lo que necesita para ejecutar el binario resultante.
Puede ver una alternativa en " ¿Cómo construyo una imagen de Docker para un proyecto de Ruby sin herramientas de compilación? "
La imagen final incluye el binario compilado y el entorno de ejecución.
También quería publicar una respuesta a esto porque para construir sobre la respuesta de VonC. En realidad, acabo de recibir capacitación sobre Redhat Openshift y usan una herramienta llamada Source to Image s2i , que usa la ventana acoplable para crear imágenes de la ventana acoplable. Y, de hecho, esta estrategia es excelente para administrar una nube privada (o pública), donde su compilación puede compilarse en diferentes máquinas, pero debe mantener la consistencia del entorno de compilación.