Compartir comentarios
Las respuestas se generan en base a la documentación.

Optimizar el uso de Docker Offload

Docker Offload construye y ejecuta tus contenedores de forma remota, no en la máquina donde invocas los comandos. Esto significa que los archivos se deben transferir desde tu sistema local a la nube a través de la red.

La transferencia de archivos a través de la red introduce una mayor latencia y un menor ancho de banda en comparación con las transferencias locales.

Incluso con optimizaciones, los proyectos grandes o las conexiones de red más lentas pueden provocar tiempos de transferencia más largos. A continuación se presentan varias formas de optimizar tu configuración para Docker Offload:

Para obtener consejos generales sobre Dockerfile, consulta Mejores prácticas de construcción.

Archivos dockerignore

Un archivo .dockerignore te permite especificar qué archivos locales no se deben incluir en el contexto de construcción. Los archivos excluidos por estos patrones no se subirán a Docker Offload durante una construcción.

Elementos típicos a ignorar:

  • .git: evita transferir tu historial de versiones. (Nota: no podrás ejecutar comandos de git en la construcción).
  • Artefactos de construcción o binarios generados localmente.
  • Carpetas de dependencias como node_modules, si estas se restauran en el proceso de construcción.

Como regla general, tu .dockerignore debería ser similar a tu .gitignore.

Imágenes base ligeras

Las imágenes base más pequeñas en tus instrucciones FROM pueden reducir el tamaño final de la imagen y mejorar el rendimiento de la construcción. La imagen alpine es un buen ejemplo de una base mínima.

Para binarios completamente estáticos, puedes usar scratch, que es una imagen base vacía.

Construcciones multietapa

Las construcciones multietapa te permiten separar los entornos de tiempo de construcción y de tiempo de ejecución en tu Dockerfile. Esto no solo reduce el tamaño de la imagen final, sino que también permite la ejecución de etapas en paralelo durante la construcción.

Utiliza COPY --from para copiar archivos de etapas anteriores o imágenes externas. Este enfoque ayuda a minimizar las capas innecesarias y a reducir el tamaño final de la imagen.

Descargar archivos remotos en la construcción

Cuando sea posible, descarga archivos grandes de Internet durante la propia construcción en lugar de empaquetarlos en tu contexto local. Esto evita la transferencia de red desde tu cliente hacia Docker Offload.

Puedes hacer esto utilizando:

Herramientas multihilo

Algunas herramientas de construcción, como make, son monohilo de forma predeterminada. Si la herramienta lo admite, configúrala para que se ejecute en paralelo. Por ejemplo, utiliza make --jobs=4 para ejecutar cuatro tareas simultáneamente.

Aprovechar los recursos de CPU disponibles en la nube puede mejorar significativamente el tiempo de construcción.