在 Docker 容器中設置 IronXL

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

想要使用C#讀取、編輯和建立Excel試算表檔案?

IronXL 現已全面支持 Docker,包括適用於 Linux 和 Windows 的 Azure Docker 容器。

Docker Azure Linux 亞馬遜 Windows

為什麼要使用 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

    我們推薦使用 Microsoft 的官方 Docker 映像檔 . 其他 Linux 發行版部分支持,但可能需要使用 apt-get 手動配置。 請查看我們的 "Linux 手動設置"指南"

    本文件包括適用於 Ubuntu 和 Debian 的 Docker 文件。

IronXL Linux Docker 安裝要點

使用我們的 NuGet 套件。

我们建议使用IronXLNuGet 套件在 Windows、macOS 和 Linux 上開發時運行良好。

Install-Package IronXL.Excel

Ubuntu Linux DockerFiles

Ubuntu Linux DockerFiles

Docker Ubuntu

Ubuntu 20 搭配 .NET 5

基礎運行時映像(Ubuntu 20,帶有 .NET 運行時)

FROM mcr.microsoft.com/dotnet/runtime:5.0-focal AS base

WORKDIR /app

基礎開發映像(Ubuntu 20 w/ .NET SDK)

FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build

WORKDIR /src

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

Ubuntu 20 搭配 .NET 3.1 LTS

基礎運行時映像(Ubuntu 20,帶有 .NET 運行時)

FROM mcr.microsoft.com/dotnet/runtime:3.1-focal AS base

WORKDIR /app

基礎開發映像(Ubuntu 20 w/ .NET SDK)

FROM mcr.microsoft.com/dotnet/sdk:3.1-focal AS build

WORKDIR /src

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

Ubuntu 18 與 .NET 3.1 LTS

基礎運行時映像(Ubuntu 18 搭配 .NET 運行時)

FROM mcr.microsoft.com/dotnet/runtime:3.1-bionic AS base

WORKDIR /app

基礎開發映像(Ubuntu 18 w/ .NET SDK)

FROM mcr.microsoft.com/dotnet/sdk:3.1-bionic AS build

WORKDIR /src

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

Debian Linux DockerFiles

Debian 11 與 .NET 5

基礎運行時映像(Debian 10,含 .NET 運行時)

FROM mcr.microsoft.com/dotnet/aspnet:5.0-bullseye-slim AS base

WORKDIR /app

基礎開發映像檔(Debian 10 w/ .NET SDK)

FROM mcr.microsoft.com/dotnet/sdk:5.0-bullseye-slim AS build

WORKDIR /src

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

Debian 11 與 .NET 3.1 LTS

基礎運行時映像(Debian 10,含 .NET 運行時)

FROM mcr.microsoft.com/dotnet/aspnet:3.1-bullseye-slim AS base

WORKDIR /app

基礎開發映像檔(Debian 10 w/ .NET SDK)

FROM mcr.microsoft.com/dotnet/sdk:3.1-bullseye-slim AS build

WORKDIR /src

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

Debian 10 與 .NET 5

基礎運行時映像(Debian 10,含 .NET 運行時)

FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base

WORKDIR /app

基礎開發映像檔(Debian 10 w/ .NET SDK)

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build

WORKDIR /src

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

Debian 10 搭配 .NET 3.1 LTS

基礎運行時映像(Debian 10,含 .NET 運行時)

FROM mcr.microsoft.com/dotnet/runtime:3.1 AS base

WORKDIR /app

基礎開發映像檔(Debian 10 w/ .NET SDK)

FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build

WORKDIR /src

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

搭載 .NET 3.1 LTS 的 CentOS 7

基礎運行時映像(CentOS 7)

FROM centos:7 AS base

WORKDIR /app

安裝必要的套件

執行 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

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]

CentOS 8 與 .NET 3.1 LTS

基礎運行時映像(CentOS 8)

FROM centos:8 AS base

WORKDIR /app

安裝必要的套件

執行 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

恢復 NuGet 套件

COPY["Example/Example.csproj", "Example/"]

RUN dotnet restore "Example/Example.csproj"

建立專案

COPY .

WORKDIR "/src/Example"

執行 dotnet build "Example.csproj" -c Release -o /app/build

發布專案

FROM build AS publish

RUN dotnet publish "Example.csproj" -c Release -o /app/publish

執行應用程式

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT[「dotnet」、「Example.dll」]