docker panama 2020

Mejores prácticas para usar Docker Hub CI / CD

Según la encuesta de desarrolladores de Jetbrains de 2020, el 44% de los desarrolladores ahora están utilizando alguna forma de integración e implementación continuas con Docker Containers. Sabemos que muchos desarrolladores han configurado esta configuración utilizando Docker Hub como su registro de contenedores para parte de su flujo de trabajo, por lo que decidimos investigar las mejores prácticas para hacer esto y brindar una guía sobre cómo comenzar. Para respaldar esto, publicaremos una serie de publicaciones de blog durante las próximas semanas para responder las preguntas comunes que vemos con los principales proveedores de CI.

También hemos escuchado comentarios que, dados los cambios que Docker introdujo en relación con la salida de la red y la cantidad de extracciones para los usuarios gratuitos, existen preguntas sobre la mejor manera de usar Docker Hub como parte de los flujos de trabajo de CI / CD sin superar estos límites. Esta publicación de blog cubre las mejores prácticas que mejoran su experiencia y utiliza un consumo sensato de Docker Hub que mitigará el riesgo de alcanzar estos límites y cómo aumentar los límites según su caso de uso.

Para comenzar, una de las cosas más importantes cuando se trabaja con Docker y realmente cualquier CI / CD es determinar cuándo necesita probar con el CI o cuándo puede hacerlo localmente. En Docker pensamos en cómo trabajan los desarrolladores en términos de su ciclo interno (código, compilación, ejecución, prueba) y su ciclo externo (cambio de inserción, compilación de CI, prueba de CI, implementación).

docker panama 2020

Antes de pensar en optimizar su CI / CD, siempre es importante pensar en su ciclo interno y cómo se relaciona con el ciclo externo (CI). Sabemos que la mayoría de las personas no son fanáticas de la «depuración a través del CI», por lo que siempre es mejor si su bucle interno y externo son lo más similares posible. Con este fin, puede ser una buena idea ejecutar pruebas unitarias como parte de su comando de compilación de Docker agregando un destino para ellas en su Dockerfile. De esa manera, mientras realiza cambios y reconstruye localmente, puede ejecutar las mismas pruebas unitarias que ejecutaría en el CI en su máquina local con un simple comando. Chris escribió una publicación de blog a principios de año sobre el desarrollo de Go con Docker, este es un gran ejemplo de cómo puede usar pruebas en su proyecto de Docker y reutilizarlas en el CI. Esto crea un ciclo de retroalimentación más corto sobre los problemas y reduce la cantidad de tirones y compilaciones que su CI necesita hacer.

Una vez que ingrese a su bucle exterior real y a Docker Hub, hay algunas cosas que podemos hacer para aprovechar al máximo su CI y brindar la experiencia Docker más rápida.

En primer lugar, ¡manténgase seguro! Cuando esté configurando su CI, asegúrese de estar usando un token de acceso de Docker Hub en lugar de su contraseña, puede crear nuevos tokens de acceso desde su página de seguridad en Docker Hub.

Una vez que tenga esto y lo haya agregado a cualquier tienda de secretos que esté disponible en su plataforma, querrá ver cuándo decide presionar y extraer su CI / CD junto con de dónde, según el cambio que esté realizando. Lo primero que puede hacer aquí para reducir el tiempo de compilación y reducir la cantidad de llamadas es utilizar la caché de compilación para reutilizar las capas que ya ha extraído. Esto se puede hacer en muchas plataformas utilizando la funcionalidad de almacenamiento en caché buildX (buildkits) y cualquier caché que proporcione su plataforma.

El otro cambio que puede querer hacer es que sus imágenes de lanzamiento solo vayan a DockerHub, esto significaría configurar funciones para enviar sus imágenes de relaciones públicas a una tienda de imágenes más local para que se extraigan y prueben rápidamente en lugar de promocionarlas hasta la producción.

Sabemos que hay muchos más consejos y trucos para usar Docker en CI, pero realmente viendo cómo hacer esto con los cambios recientes en la tasa de Hub, creemos que estas son las mejores cosas que puede hacer.

Si todavía tiene problemas con los límites de extracción una vez que esté autenticado, puede considerar actualizar a una cuenta Pro o Team. Esto le brindará extracciones autenticadas ilimitadas de Docker Hub, además de brindarle repositorios privados ilimitados y retención de imágenes ilimitada. En un futuro cercano, esto también incluirá el escaneo de imágenes (con tecnología de Snyk) al enviar nuevas imágenes a Docker Hub.

Busque la próxima publicación de blog de la serie sobre cómo implementar algunas de estas prácticas con acciones de Github y siéntase libre de darnos ideas de qué proveedores de CI le gustaría que cubrimos enviándonos un mensaje en Twitter @Docker .

Fuente: docker.com

Deja un comentario