Crear una aplicación de ASP.NET Core y contenerizarla con Docker
Hola! ¿Te frustra querer aprender fácil y rápidamente sobre Docker y fallar en el intento? ¿Y crees que aprenderlo con ASP.NET Core será más complicado?¡Dejemos eso a un lado!
En ésta publicación detallaremos varios pasos para hacer que un contenedor de Docker pueda llevar consigo nuestra aplicación de ASP.NET Core.
Docker y otros requisitos previos
Si usás Windows (como yo), deberías:
- Instalar Docker Desktop for Windows (posiblemente debas loguearte).
¿Están habilitadas las opciones de virtualización en el BIOS? (p. ej. Hyper-V). De no estarlo, no se preocupe, el instalador puede hacerlo por vos. - Instalar (o actualizar) la versión de Visual Studio (al 2019+).
¿Por qué no instalar una versión más antígua? Porque en el VS2019, Microsoft agrega el soporte a Docker (¡y funciona bien!).
Comenzar con una solución existente
Nota: Si no contás con una solución ya existente, podés crear una cualquiera en el Visual Studio, y deberá contar con un proyecto de ASP.NET Core por lo menos.
Podés intentarlo con cualquier solución, pero sólo con fines de prueba, yo uso un ejemplo propio con una WebAPI en ASP.NET Core, y selecciono el proyecto Api como proyecto de inicio.
Después de ésto, usted necesitará hacer clic derecho en el mismo proyecto y seleccionar Add > Docker Support…
Nota: Ya deberías estar corriendo la aplicación Docker Desktop.
¡Felicitaciones! Ya tenés un archivo Dockerfile (y un archivo dockerignore) en tu proyecto de inicio. Pero…, ¡no! Ese archivo no está listo para dockerizar.
Entonces, ¿qué necesito para dockerizar?
Recuerde, tenga mucho cuidado donde modifica.
En el Dockerfile, vemos entre las primeras líneas: EXPOSE 80. Ahora, sólo deberás modificarlo a EXPOSE 1811 (o al que tenga tu proyecto configurado para lanzar la API).
Queda sólamente hacer clic en el botón de “Docker” que está en la barra de herramientas, y esperamos a que se levante el debug. Cuando finaliza, podrás ver la WebAPI en tu navegador (si no configuraste nada aún) en el puerto 10000. ¡Ya funciona!
Troubleshooting
- Error de Visual Studio: “Can not find docker container”
Deberás eliminar la carpeta “.vs” (oculta), y reintentar. Si no ves la carpeta, activá la option “Hidden items” en el Explorador de Windows y ya podrás verla.
(English version available in DEV.to)