Konfigurowanie IronXL w kontenerach Docker
Chcesz odczytywać, edytować i tworzyć pliki arkuszy kalkulacyjnych Excel za pomocą C#?
IronXL teraz w pełni obsługuje Docker, w tym Azure Docker Containers dla Linuksa i Windows.
Dlaczego warto korzystać z Docker?
Docker umożliwia programistom łatwe pakowanie, dostarczanie i uruchamianie dowolnej aplikacji jako lekkiego, przenośnego i samowystarczalnego kontenera, który może działać praktycznie wszędzie.
IronXL i Linux - wprowadzenie
Jeśli Docker z .NET jest dla Ciebie nowością, polecamy doskonały artykuł o konfigurowaniu debugowania Docker i integracji z projektami Visual Studio. https://docs.microsoft.com/en-us/visualstudio/containers/edit-and-refresh?view=vs-2019
Zdecydowanie polecamy również przeczytanie naszego Przewodnika po instalacji i zgodności IronXL na Linux
Zalecane dystrybucje Linux Docker
Zalecamy najnowsze 64-bitowe systemy Linux, wymienione poniżej, dla łatwej konfiguracji IronXL.
- Ubuntu 20
- Ubuntu 18
- Debian 11
- Debian 10 [Obecnie domyślna dystrybucja Linux Microsoft Azure]
- CentOS 7
- CentOS 8
Polecamy użycie Oficjalnych Obrazów Docker Microsoft. Inne dystrybucje Linux są częściowo obsługiwane, ale mogą wymagać ręcznej konfiguracji za pomocą apt-get. Zobacz nasz przewodnik "Linux Manual Setup".
Działające pliki Docker dla Ubuntu i Debian są zawarte w tym dokumencie:
Podstawy instalacji Docker IronXL dla Linux
Skorzystaj z naszego pakietu NuGet
Zalecamy użycie pakietu NuGet IronXL. Działa podczas tworzenia aplikacji na Windows, macOS i Linux.
Install-Package IronXl.Excel
Pliki Docker dla Linux Ubuntu
Ubuntu 20 z .NET 5
# Base runtime image (Ubuntu 20 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:5.0-focal AS base
WORKDIR /app
# Base development image (Ubuntu 20 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Ubuntu 20 z .NET 3.1 LTS
# Base runtime image (Ubuntu 20 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1-focal AS base
WORKDIR /app
# Base development image (Ubuntu 20 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-focal AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Ubuntu 18 z .NET 3.1 LTS
# Base runtime image (Ubuntu 18 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1-bionic AS base
WORKDIR /app
# Base development image (Ubuntu 18 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-bionic AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Pliki Docker dla Debian Linux
Debian 11 z .NET 5
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/aspnet:5.0-bullseye-slim AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0-bullseye-slim AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Debian 11 z .NET 3.1 LTS
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/aspnet:3.1-bullseye-slim AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-bullseye-slim AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Debian 10 z .NET 5
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Debian 10 z .NET 3.1 LTS
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1 AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
CentOS 7 z .NET 3.1 LTS
# Base runtime image (CentOS 7)
FROM centos:7 AS base
WORKDIR /app
# Install necessary packages
RUN yum install sudo -y
RUN sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
RUN sudo yum install dotnet-sdk-3.1 -y
RUN sudo yum install aspnetcore-runtime-3.1 -y
RUN sudo yum install dotnet-runtime-3.1 -y
RUN sudo yum update -y
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM base AS publish
WORKDIR /src
COPY . .
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
CentOS 8 z .NET 3.1 LTS
# Base runtime image (CentOS 8)
FROM centos:8 AS base
WORKDIR /app
# Install necessary packages
RUN yum install sudo -y
RUN sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
RUN sudo yum install dotnet-sdk-3.1 -y
RUN sudo yum install aspnetcore-runtime-3.1 -y
RUN sudo yum install dotnet-runtime-3.1 -y
RUN sudo yum update -y
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM base AS publish
WORKDIR /src
COPY . .
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]Często Zadawane Pytania
Jak skonfigurować IronXL w kontenerze Docker?
Aby skonfigurować IronXL w kontenerze Docker, należy użyć pakietu IronXL NuGet, który jest kompatybilny z systemami Windows, macOS i Linux. Należy go zainstalować za pomocą polecenia: dotnet add package IronXL. W przypadku Docker należy zintegrować pakiet w pliku Dockerfile i upewnić się, że aplikacja ma dostęp do niezbędnych bibliotek i zależności.
Jakie są zalety korzystania z Docker w aplikacjach Excel?
Docker pozwala pakować, dostarczać i uruchamiać aplikacje Excel jako lekkie, przenośne kontenery, zapewniając spójność i wydajność w różnych srodowiskach. Pomaga to w utrzymaniu stabilnego i powtarzalnego środowiska programistycznego i produkcyjnego.
Które dystrybucje Linuksa najlepiej współpracują z IronXL w Dockerze?
Dystrybucje Linuksa zalecane do konfiguracji IronXL w Dockerze to Ubuntu 18, Ubuntu 20, Debian 10, Debian 11, CentOS 7 i CentOS 8. Dystrybucje te zapewniają stabilne środowisko dla kontenerów Docker uruchamiających aplikacje Excel.
Czy mogę używać IronXL zarówno w kontenerach Docker dla systemu Windows, jak i Linux?
Tak, IronXL obsługuje kontenery Docker zarówno na platformach Windows, jak i Linux. Obejmuje to kontenery hostowane na platformie Azure, co zapewnia elastyczne opcje wdrażania.
Jakie obrazy Docker są zalecane dla aplikacji .NET korzystających z IronXL?
W przypadku aplikacji .NET korzystających z IronXL for .NET zaleca się użycie oficjalnych obrazów Docker firmy Microsoft dla środowiska uruchomieniowego .NET i zestawu SDK. Obrazy te są zoptymalizowane pod kątem aplikacji .NET i można je znaleźć na platformie Docker Hub.
Jak mogę rozwiązać problemy z IronXL w środowisku Docker?
Jeśli napotkasz problemy z IronXL w Dockerze, upewnij się, że wszystkie zależności są poprawnie zainstalowane w kontenerze Docker. Sprawdź konfigurację pliku Dockerfile i upewnij się, że używana jest właściwa wersja .NET. Aby uzyskać dodatkową pomoc, zapoznaj się z dokumentacją IronXL oraz oficjalnymi przewodnikami Docker dotyczącymi rozwiązywania problemów.
Jakie zasoby są dostępne, aby dowiedzieć się więcej o integracji Docker i IronXL?
Aby dowiedzieć się więcej na temat integracji Docker i IronXL, zapoznaj się z dokumentacją Microsoftu dotyczącą Docker dla projektów .NET i Visual Studio. Ponadto przewodnik konfiguracji IronXL dla systemu Linux zawiera cenne informacje dotyczące konfiguracji środowisk Docker.

