Docker to platforma programistyczna do szybkiego tworzenia, testowania i wdrażania aplikacji. Pozwala nam to na hostowanie wielu kontenerów na jednym serwerze. Kontenery odnoszą się do agregatu naszej aplikacji, jej zależności oraz obrazu. Należy pamiętać, że obraz jest szablonem, który jest rodzajem zestawu systemu plików. Odświeżyliśmy sobie pamięć o niektórych pojęciach, teraz możemy porozmawiać o tym, jak wprowadzić FastReport.Core + FastReport.Web do naszego własnego kontenera.
Po pierwsze, musimy zainstalować samego Dockera na dowolnej dystrybucji Linuksa, w naszym przypadku będzie to Ubuntu 20.04. Na temat instalacji Dockera na Linuksie możesz przeczytać w tym artykule. Po zainstalowaniu i sprawdzeniu poprawności, przejdźmy do następnego kroku.
Teraz musimy utworzyć plik DockerFile. Jest to po prostu zwykły dokument tekstowy zawierający wszystkie polecenia do budowy obrazu. Możesz utworzyć i edytować ten plik za pomocą dowolnego edytora tekstu lub za pomocą kodu VS. Przy okazji, kod VS posiada poręczny plugin docker, który ułatwia pisanie i edycję.
Przykład 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"]
Ten plik docker implementuje obraz demonstracyjny aplikacji FastReport.Core.Web21.MVC, w której zastosowano FastReport.Web i FastReport.Core. Można to sprawdzić samemu za pomocą poniższego linku, lub podczas pobierania FastReport.NET znaleźć katalog Demos\Core\FastReport.Core.Web21.MVC .
Kiedy DockerFile został już napisany, konieczne jest jego zbudowanie. Jest to bardzo łatwe do zrobienia. Uruchamiamy terminal z katalogu, w którym znajduje się DockerFile i wpisujemy do niego polecenie:
sudo docker build
Po pomyślnym stworzeniu należy rozmieścić kontener za pomocą polecenia:
sudo docker run -d -p 8080:80 build/fastreport
W tym poleceniu przekierowujemy port 8080 i nadajemy obrazowi nazwę "build/fastreport".
Po pomyślnym uruchomieniu kontenera należy otworzyć stronę http://localhost:8080/. Następnie przejdź do strony swojej aplikacji, jeśli wszystkie zależne zostały spełnione i rozstrzygnięte, Twój projekt zostanie wyświetlony:
Podsumowując. Docker wdraża się dosłownie dwoma poleceniami, a kontenery zajmują znacznie mniej miejsca niż obrazy maszyn wirtualnych, co daje nam dużą oszczędność miejsca i czasu.