Konfigurowanie IronXL w kontenerach Docker

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

Docker Azure Linux Amazon 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

Docker 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.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 1,950,735 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronXl.Excel
uruchom próbkę zobacz, jak Twoje dane stają się arkuszem.