Docker é uma plataforma de software para desenvolvimento rápido, testes e implantação de aplicativos. Com ele, podemos colocar múltiplos containers em um único servidor. Os containers são a combinação de nosso aplicativo, suas dependências e uma imagem. Tenha em mente que uma imagem é um modelo, que é uma espécie de padrão de um sistema de arquivo. Agora, depois de refrescar nossa memória com alguns termos, podemos falar sobre como ter FastReport.Core + FastReport.Web em nosso próprio container.
Primeiro precisamos instalar o próprio Docker em qualquer distribuição Linux, em nosso caso Ubuntu 20.04. Para instalar o Docker no Linux você pode ler esse artigo. Após a instalação e verificação, passe para o próximo passo.
Agora precisamos criar um DockerFile. É um documento de texto simples contendo todos os comandos para construir a imagem. Você pode criar e editar este arquivo ou em um editor de texto regular ou no mesmo código VS. A propósito, o código VS tem um prático plugin de docker, o que facilita um pouco a escrita e a edição.
Exemplo 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 arquivo de docker distribui a imagem Demo do aplicativo FastReport.Core.Web21.MVC que usa FastReport.Web e FastReport.Core. Você pode apalpá-lo no link a seguir, ou ao baixar FastReport.NET encontre o diretório Demos\Core\FastReport.Core.Core.Web21.MVC.
Uma vez que o DockerFile tenha sido escrito, é indispensável construí-lo. Isto é muito fácil de fazer. Lance o terminal a partir do diretório onde está localizado o DockerFile e digite no mesmo o comando:
sudo docker build
Depois de construir com sucesso, o container deve ser colocado utilizando o comando:
sudo docker run -d -p 8080:80 build/fastreport
Neste comando, encaminhamos a porta 8080 e nomeamos a imagem "build/fastreport".
Após um início bem sucedido do container, abra http://localhost:8080/. Em seguida, vá para a página do seu aplicativo; se todas as dependências tiverem sido executadas e resolvidas, seu projeto aparecerá diante de nós:
Para resumir. O Docker é distribuído com literalmente dois comandos, e os containers ocupam muito menos espaço do que as imagens de máquinas virtuais, o que nos dá uma grande poupança de espaço e tempo.