Docker es una plataforma para un desarrollo rápido, una prueba y una implementación de aplicaciones. Gracias a ella, podemos colocar muchos contenedores a un servidor. Los contenedores son un conjunto de nuestra aplicación, sus dependencias y su imagen. Recordamos que la imagen es una plantilla que es una especie de copia de sistema de archivos. Hemos refrescado la memoria con algunos términos, ahora podemos hablar implementar FastReport.Core + FastReport.Web en nuestro contenedor.
En primer lugar, necesitamos instalar el propio Docker en alguna distribución de Linux, en nuestro caso esto es Ubuntu 20.04. Puede leer este artículo sobre la instalación de Docker en Linux. Después de la instalación y la prueba vamos al próximo paso.
Ahora necesitamos crear DockerFile. Es un documento de texto ordinario que contiene todos los comandos para compilar una imagen. Puede crear y editar este archivo tanto en un editor de texto común, como en VS code. Al notar, en VS code hay un complemento cómodo docker, el que simplifica un poco la escritura y la edición.
Un ejemplo de DockerFile:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so RUN apt-get update \ && apt-get install -y --allow-unauthenticated \ libc6-dev \ libgdiplus \ libx11-dev \ && rm -rf /var/lib/apt/lists/* ENV DISPLAY :99 FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src COPY ["fastreport_net", "FastReport.Net"] RUN dotnet restore "FastReport.Net/Demos/Core/FastReport.Core.Web21.MVC/FastReport.Core.Web21.MVC.csproj" COPY . . WORKDIR "/src/FastReport.Net/Demos/Core/FastReport.Core.Web21.MVC" RUN dotnet build "FastReport.Core.Web21.MVC.csproj" -c Release -o /app FROM build AS publish RUN dotnet publish "FastReport.Core.Web21.MVC.csproj" -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "FastReport.Core.Web21.MVC.dll"]
Este DockerFile despliega una imagen de la aplicación de demostración FastReport.Core.Web21.MVC, en la que se utilizan FastReport.Web y FastReport.Core. Puede probarla a solas en el enlace siguiente, o al instalar FastReport.NET busque la dirección Demos\Core\FastReport.Core.Web21.MVC .
Después de escribir DockerFile necesita compilarlo. Esto es fácil de hacer. Iniciamos el terminal desde la dirección, en la que DockerFile se localiza y escribimos un comando:
sudo docker build
Después de una compilación correcta necesita implementar un contenedor con un comando:
sudo docker run -d -p 8080:80 build/fastreport
En este comando redirigimos un puerto de red 8080 y llamamos una imagen “build/fastreport”.
Después del inicio correcto abrimos http://localhost:8080/. Luego vamos a la página de su aplicación, si todas las dependencias han sido completadas, aquí tenemos nuestro proyecto:
Hacemos el resumen. Docker crea la implementación literalmente con dos comandos, y los contenedores necesitan mucho menos espacio que las imágenes de máquinas virtuales, lo que nos permite ahorrar espacio y tiempo.