Como executar um aplicativo com FastReport .NET no Docker sob Linux

2021-11-17

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:

Projeto finalizado

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.

.NET FastReport Linux Core Libgdiplus Ubuntu .NET FastReport Linux Core Libgdiplus Ubuntu
28 de outubro de 2024

How to Set Up WSL 2 for Working with FastReport and FastCube

In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux.
04 de outubro de 2023

How to generate a report from an ASP.NET Core application using FastReport.Core.Skia

We tell you how to generate a report on Windows and Linux using FastReport.Core.Skia and a private NuGet server.
22 de março de 2023

Creating PDF report in JetBrains Rider (C#) on Ubuntu 22.04.1 LTS

In this article, we'll take a look at the world of the .NET platform on Ubuntu 22.04.1 LTS and create a PDF exportable report.
Fast Reports
  • 800-985-8986 (English, US)
  • +31 97 01025-8466 (English, EU)
  • +49 30 56837-3928 (German, DE)
  • +55 19 98147-8148 (Portuguese, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.