Crear una aplicación de ASP.NET Core y contenerizarla con Docker

Roberto Ruiz
3 min readSep 25, 2019

--

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.

Setting the Api project (WebAPI) as StartUp project
Configurando el proyecto Api (WebAPI) como proyecto de inicio.
Seleccionamos la opción “Docker support” para crear un Dockerfile.
Luego, seleccionamos el Sistema Operativo destino. En éste caso, seleccionarás “Windows” y confirmás el diálogo.

¡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).

Cambiando el puerto en el Dockerfile
Atención: En la barra de herramientas, debes poder visualizar el botón “Docker” en lugar de “IIS Express”. De no ser así, seleccionalo o revisá tu instalación en caso de que no visualices la opción.

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)

--

--

Roberto Ruiz
Roberto Ruiz

Written by Roberto Ruiz

Desarrollador en Algeiba, con el entusiasmo intacto de compartir buenas ideas a la comunidad 💻🧉

No responses yet