在 Docker 容器中設定 IronXL
想使用 C# 讀取、編輯和建立 Excel 電子表格檔案嗎?
IronXL 現在完全支援 Docker,包括適用於 Linux 和 Windows 的 Azure Docker 容器。
為什麼要使用 Docker?
Docker 使開發人員能夠輕鬆地將任何應用程式打包、交付和運行為輕量級、可移植、自包含的容器,該容器幾乎可以在任何地方運行。
IronXL 和 Linux 入門指南
如果您是第一次接觸 Docker 與 .NET,我們推薦您閱讀這篇關於設定 Docker 偵錯以及如何將其與 Visual Studio 專案整合的優秀文章。 https://docs.microsoft.com/en-us/visualstudio/containers/edit-and-refresh?view=vs-2019
我們也強烈建議您閱讀我們的IronXL Linux 安裝和相容性指南。
推薦的 Linux Docker 發行版
我們推薦使用以下最新的 64 位元 Linux 作業系統,以便"輕鬆配置"IronPDF。
- Ubuntu 20
- Ubuntu 18
- Debian 11
- Debian 10 [目前是 Microsoft Azure 的預設 Linux 發行版] CentOS 7 CentOS 8
我們建議使用微軟官方的 Docker 映像。 其他 Linux 發行版也部分受支持,但可能需要使用apt-get進行手動設定。 請參閱我們的" Linux 手動安裝指南"。
本文檔中包含適用於 Ubuntu 和 Debian 的 Docker 檔案:
IronXL Linux Docker 安裝要點
使用我們的 NuGet 套件
我們建議使用IronXL NuGet 套件。 它在 Windows、macOS 和 Linux 系統上進行開發時均可正常運作。
Install-Package IronXL.Excel
Ubuntu Linux Dockerfiles
Ubuntu 20 和 .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 搭載 .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 搭載 .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"]Debian Linux Dockerfiles
Debian 11 及 .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 及 .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 和 .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 及 .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 搭配 .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 搭配 .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"]常見問題解答
如何在 Docker 容器中安裝 IronXL?
要在 Docker 容器中安裝 IronXL,您需要使用 IronXL NuGet 套件,該套件相容於 Windows、macOS 和 Linux。使用指令 ` dotnet add package IronXL進行安裝。對於 Docker,請將該套件整合到您的 Dockerfile 中,並確保您的應用程式可以存取必要的程式庫和依賴項。
使用 Docker 開發 Excel 應用程式有哪些好處?
Docker 可讓您將 Excel 應用程式打包、分發和運行為輕量級、可移植的容器,從而確保在不同環境下的一致性和效率。這有助於維護穩定且可復現的開發和生產環境。
哪些 Linux 發行版與 Docker 中的 IronXL 相容性最佳?
推薦用於在 Docker 中配置 IronXL 的 Linux 發行版為 Ubuntu 18、Ubuntu 20、Debian 10、Debian 11、CentOS 7 和 CentOS 8。這些發行版為運行 Excel 應用程式的 Docker 容器提供了穩定的環境。
我可以在Windows和Linux Docker容器中使用IronXL嗎?
是的,IronXL 支援 Windows 和 Linux 平台上的 Docker 容器。這包括託管在 Azure 上的容器,從而提供靈活的部署選項。
對於使用 IronXL 的 .NET 應用程序,建議使用哪些 Docker 映像?
對於使用 IronXL 的 .NET 應用程序,建議使用 Microsoft 官方的 .NET 運行時和 SDK Docker 映像。這些映像針對 .NET 應用程式進行了最佳化,可以在 Docker Hub 上找到。
如何在 Docker 環境下排查 IronXL 的問題?
如果在使用 Docker 執行 IronXL 時遇到問題,請確保所有相依性都已正確安裝在 Docker 容器中。檢查 Dockerfile 配置,並確保使用的是正確的 .NET 版本。如需更多協助,請參閱 IronXL 文件和 Docker 官方故障排除指南。
有哪些資源可以幫助我深入了解 Docker 和 IronXL 的整合?
如需進一步了解 Docker 和 IronXL 集成,請參閱 Microsoft 關於 Docker for .NET 和 Visual Studio 專案的文件。此外,IronXL 的 Linux 設定指南也提供了有關設定 Docker 環境的寶貴資訊。






