Compartir a través de


Publicar una aplicación web para contenedores con Imagen de Windows Docker (es-mx)

Artículo Original: https://blogs.msdn.microsoft.com/benjaminperkins/2018/09/18/publish-a-web-app-for-containers-windows-docker-image/

 Escribí estos otros artículos aquí "Cómo agregar compatibilidad con Docker a su aplicación ASP.NET Core" y aquí "Publique una imagen de Windows Docker en Docker Hub usando Visual Studio" que discutieron cómo llegué a este punto. Hasta ahora, no hay muchos problemas y fue bastante fácil. Cuando agregué el soporte de Docker a mi proyecto ASP.NET Core, agregué un archivo Docker que identificaba la versión del sistema operativo que incluiría con la aplicación. Incluyó esto por defecto:

FROM microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1803 AS base
FROM microsoft/dotnet:2.1-sdk-nanoserver-1803 AS build

Luego, cuando accedí al portal de Azure, seleccioné el sistema operativo Windows para la aplicación web para los contenedores y cuando agregué la imagen no valía. Recibí lo siguiente, Figura 1:

No se puede ejecutar este sistema operativo / versión en contenedores de Windows. La versión máxima admitida del sistema operativo es 10.0.14393.

https://msdnshared.blob.core.windows.net/media/2018/09/image_thumb55.png

Figura 1, publique una ventana acoplable de imágenes del sistema operativo Windows en la aplicación web para el servicio de aplicación contenedor azul

Miré por aquí y aquí para algunas imágenes y, a través de ensayo y error, encontré una que funcionaba, Figura 2.

FROM microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-sac2016 AS base
FROM microsoft/dotnet:2.1-sdk-nanoserver-sac2016 AS build

https://msdnshared.blob.core.windows.net/media/2018/09/image_thumb56.png

Figura 2: publique una ventana acoplable de imágenes del sistema operativo Windows en la aplicación web para el servicio de aplicación contenedor azul

Lamentablemente, el contenedor no se inició y recibí la siguiente respuesta, ASOD (Azure Screen Of Death) (*), cuando accedí al sitio, Figura 3

The Web App's container could not start Please try again in few minutes If you are an administrator of this Web App please verify your container settings and go to Azure Portal to review the diagnostic logs

https://msdnshared.blob.core.windows.net/media/2018/09/image_thumb57.png

Figura 3: publique una ventana acoplable de imágenes del sistema operativo Windows en la aplicación web para el servicio de aplicación contenedor azul

Para resolver ese problema, hice lo que decía el mensaje, es decir habilitar y revisar los registros de diagnóstico. Esto es lo que encontré en los archivos D: \ home \ LogFiles \ * _ docker.log a través de KUDU / SCM.

ERROR - Site: - Image pull reported error. Image: benperk/. failed to register layer:

     ``re-exec error: exit status 1: output: remove \\?\C:\DockerData\windowsfilter\...cat:

     ``The process cannot access the file because it is being used by another process.

ERROR - Site: - Pull image completed but it was not found locally. Image: benperk/

WARNING - Site: - Attempt 1 to start container was unsuccessful. Maximum attempts: 3.

INFO - Site: - Purging after container failed to start

INFO - Site: - Purging pending logs after stopping container

No tomé ninguna medida más que ser paciente, mirando a través de los registros el proceso está descargando una gran cantidad de archivos de gran tamaño, por lo que puede llevar algo de tiempo cargarlo, instalarlo y configurarlo todo. Finalmente, leí lo siguiente en los archivos de registro y el sitio respondía como se esperaba.

INFO - Site: * - Creating container for image: benperk/*.

INFO - Site: * - Create container for image: benperk/* succeeded. Container Id 6396:::

INFO - Site: * - Start container succeeded. Container: 63962:::

INFO - Site: * - Waiting for container to be ready

INFO - Site: * - Container ready

INFO - Site: * - Configuring container

INFO - Site: * - Container ready

INFO - Site: * - Container start-up and configuration completed successfully

 En una segunda publicación en un contenedor de Windows diferente para aplicaciones web, recibí este mensaje en los registros D: \ home \ LogFiles \ * _ docker.log:

INFO - Site: * - Creating container image
ERROR - Site: * - Invalid Image type: IIS.
WARNING - Site: * - Attempt 1 to start container was unsuccessful. Maximum attempts: 3. 
INFO - Site: * - Purging after container failed to start

Esto sucedió porque estoy acostumbrado a seleccionar el elemento publicar menú y publicar directamente a una aplicación web, me olvidé de que tengo que poner la imagen en el acoplador y luego crear la aplicación web desde el portal como se ve en la Figura 1 y 2 anterior en Este artículo. En notado, vea la Figura 4 que el trabajo se consideró un contenedor mientras que el roto no.

https://msdnshared.blob.core.windows.net/media/2018/09/image_thumb58.png

Figura 4: publique una ventana acoplable de imágenes del sistema operativo Windows en la aplicación web para el servicio de contenedores de azure

Eliminé la aplicación rota y la implementé correctamente y todo funcionó bien.

Hace algunos meses instalé y configuré un servidor Nano y escribí algunas publicaciones al respecto. Aquí están. No había visto mucho sobre Nano desde que los escribí, es agradable verlo tener algo de tracción. Estoy especialmente interesado en probar este "Cómo conectar y configurar IIS en ejecución en Nano". Veo un enlace a Win-RM en el portal que me permitirá la administración remota.