Setting up IronXL in Docker Containers

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

C#を使用してExcelスプレッドシートファイルを読み取り、編集し、作成しますか?

IronXLは現在、LinuxおよびWindows用のAzure Dockerコンテナを含むDockerを完全にサポートしています。

Docker Azure Linux Amazon Windows

なぜDockerを使用するのか?

Dockerは、開発者があらゆるアプリケーションを軽量で持ち運び可能かつ自己完結型のコンテナとして簡単にパッケージングし、出荷し、実行できるようにし、ほぼどこでも動作可能です。

IronXLおよびLinuxの概要

Dockerと.NETが初めての方には、Visual StudioプロジェクトとのDockerデバッグと統合のセットアップに関するこの素晴らしい記事をお勧めします。 https://docs.microsoft.com/en-us/visualstudio/containers/edit-and-refresh?view=vs-2019

また、IronXL Linuxセットアップと互換性ガイドもぜひご覧ください。

推奨Linux Dockerディストリビューション

IronPDFの「簡単な構成」のため、以下の最新の64ビットLinux OSをお勧めします。

  • 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パッケージを使用する

IronXL NuGetパッケージの使用をお勧めします。 これは、Windows、macOS、およびLinuxで開発する際に動作します。

Install-Package IronXL.Excel

Ubuntu Linux Dockerファイル

Docker Ubuntu

Ubuntu 20 with .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 with .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 with .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 Dockerファイル

Debian 11 with .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 with .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 with .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 with .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 with .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をセットアップするには、Windows、macOS、Linuxに対応しているIronXL NuGetパッケージを使用する必要があります。コマンド: dotnet add package IronXL を使ってインストールしてください。Dockerの場合、パッケージをDockerfileに組み込み、アプリケーションが必要なライブラリと依存関係にアクセスできることを確認してください。

ExcelアプリケーションにDockerを使用する利点は何ですか?

DockerはExcelアプリケーションを軽量でポータブルなコンテナとしてパッケージ、出荷、実行でき、異なる環境間での一貫性と効率を保証します。これにより、安定した再現可能な開発および運用環境の維持が可能になります。

DockerでIronXLに最適なLinuxディストリビューションはどれですか?

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の公式Dockerイメージを使用した.NETランタイムとSDKが推奨されます。これらのイメージは.NETアプリケーション用に最適化されており、Docker Hubで見つけることができます。

Docker 環境で IronXL の問題をトラブルシューティングするにはどうすればよいですか?

DockerでIronXLに問題がある場合、すべての依存関係がDockerコンテナ内に正しくインストールされていることを確認してください。Dockerfileの設定を確認し、正しい.NETバージョンが使用されているか確認してください。IronXLのドキュメントおよびDockerの公式トラブルシューティングガイドを参照してさらに助けを得てください。

DockerとIronXLの統合についてさらに学ぶためのリソースは何ですか?

DockerとIronXLの統合についてさらに学ぶために、MicrosoftのDockerに関するドキュメントを参照してください.NETおよびVisual Studioプロジェクト.Additionally, IronXLのLinux設定ガイドはDocker環境の設定に役立つ情報を提供します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はいいですか?
Nuget ダウンロード 1,686,155 | バージョン: 2025.11 ただ今リリースされました