在 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。

  • 乌班图 20
  • 乌班图 18
  • Debian 11
  • Debian 10 [目前,Microsoft Azure 默认 Linux Distro]
  • 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

Docker 乌班图

Ubuntu 20 与 .NET 5

# 基本运行时映像 (Ubuntu 20 w/ .NET runtime)

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

工作目录 /app

# 基本开发映像 (Ubuntu 20 w/ .NET SDK)

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

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

Ubuntu 20 与 .NET 3.1 LTS

# 基本运行时映像 (Ubuntu 20 w/ .NET runtime)

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

工作目录 /app

# 基本开发映像 (Ubuntu 20 w/ .NET SDK)

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

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

Ubuntu 18,支持 .NET 3.1 LTS

# 基本运行时映像 (Ubuntu 18 w/ .NET runtime)

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

工作目录 /app

# 基本开发映像 (Ubuntu 18 w/ .NET SDK)

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

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

Debian Linux DockerFiles

Debian 11 与 .NET 5

# 基本运行时映像 (Debian 10 w/ .NET runtime)

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

工作目录 /app

# 基本开发映像 (Debian 10 w/ .NET SDK)

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

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

Debian 11 与 .NET 3.1 LTS

# 基本运行时映像 (Debian 10 w/ .NET runtime)

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

工作目录 /app

# 基本开发映像 (Debian 10 w/ .NET SDK)

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

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

Debian 10 与 .NET 5

# 基本运行时映像 (Debian 10 w/ .NET runtime)

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

工作目录 /app

# 基本开发映像 (Debian 10 w/ .NET SDK)

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

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

Debian 10 与 .NET 3.1 LTS

# 基本运行时映像 (Debian 10 w/ .NET runtime)

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

工作目录 /app

# 基本开发映像 (Debian 10 w/ .NET SDK)

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

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

CentOS 7 与 .NET 3.1 LTS

#基础运行时映像 (CentOS 7)

FROM centos:7 AS base

工作目录 /app

# 安装必要的软件包

运行 yum install sudo -y

运行 sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

运行 sudo yum install dotnet-sdk-3.1 -y

运行 sudo yum install aspnetcore-runtime-3.1 -y

运行 sudo yum install dotnet-runtime-3.1 -y

运行 sudo yum update -y

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]

CentOS 8 与 .NET 3.1 LTS

#基础运行时映像 (CentOS 8)

FROM centos:8 AS base

工作目录 /app

# 安装必要的软件包

运行 yum install sudo -y

运行 sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

运行 sudo yum install dotnet-sdk-3.1 -y

运行 sudo yum install aspnetcore-runtime-3.1 -y

运行 sudo yum install dotnet-runtime-3.1 -y

运行 sudo yum update -y

工作目录 /src

# 恢复 NuGet 软件包

复制 ["Example/Example.csproj"、"Example/"]

运行 dotnet 还原 "Example/Example.csproj"

# 构建项目

COPY .

WORKDIR "/src/Example" /src/Example

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

# 发布项目

FROM build AS publish

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

# 运行应用程序

FROM base AS final

工作目录 /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet"、"Example.dll"]