How to: Usar Chocolatey en contenedores docker para instalar dependencias.

Chocolatey es un gestor de dependencias externo para entornos Windows. Los servicios gestores de dependencias son bastante comunes en el ecosistema Linux-Unix. En ambientes windows no existía hasta hace poco un servicio de estas características. Un gestor de dependencias es un servicio centralizado al que puedes acceder (regularmente por comandos) para descargar componentes que puedes usar directo o componentes que requieren otras aplicaciones para su funcionamiento interno. Me interesa este servicio para poder automatizar la creación de imágenes de contenedores Docker.

Uno de los componentes que usa mi empresa requiere de Visual C++ instalado, es crucial que cualquier contenedor que construya ya lleve esta dependencia pre cargada. Aquí es donde entra Chocolatey. Antes hay que aclarar que todo sistema de dependencias publico por lo general viene sin soporte de los paquetes publicados. En el sitio la gente de Chocolatey te menciona que hay un proceso mínimo de curadoria y revisión, pero no hay soporte de ningún tipo con los paquetes, si quieres usar la herramienta sera bajo tu propio riesgo. Puedes adquirir algún plan de licenciamiento corporativo si la cosa va mas en serio. Es el modelo de negocio community/coporative de toda la vida.

¿Como se instala Chocolatey?.

Puedes acceder a la información de como instalar Chocolatey aquí. La manera mas rápida es hacerlo mediante Powershell con permisos de administrador. Con este método podrás instalar Chocolatey en tu dockerfile.

Instala paquetes usando “choco”.

Cuando instalas Chocolatey se instala la utilidad choco mediante la cual podrás jalar paquetes al equipo en cuestión. Casi todos los paquetes requieren de la aceptación de licencias, términos y condiciones, puedes usar el argumento “-y” para aceptarlos por default, de lo contrario causara error al momento de ejecutar docker build.

Construye y ejecuta tu contenedor.

Una vez creado tu dockerfile solo necesitas usar docker build y docker run para ver el resultado.

Autor imagen: CyberHades