Ajouter IronPDF à un conteneur Docker existant

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

IronPDF for .NET Standard prend désormais entièrement en charge Docker, notamment les conteneurs Azure Docker pour Linux et Windows.

Souhaitez-vous plutôt déployer IronPDF en tant que conteneur Docker distinct ? En savoir plus sur le guide des tutoriels de l'IronPDF Engine.

Docker V1 related to Ajouter IronPDF à un conteneur Docker existant
Azure 1 related to Ajouter IronPDF à un conteneur Docker existant
Linux V1 related to Ajouter IronPDF à un conteneur Docker existant
Amazon Web Services V1 related to Ajouter IronPDF à un conteneur Docker existant
Windows Logo V1 related to Ajouter IronPDF à un conteneur Docker existant

Pourquoi utiliser Docker sur Azure ?

Outre une évolutivité entreprise excellente, les conteneurs Docker sur Azure bénéficiaient de plus de permissions que les applications Web régulières.

Cela permet le rendu des polices SVG, car l'accès du système aux graphiques GDI+ est activé.

IronPDF et Linux Primer

Si Docker avec .NET est nouveau pour vous, nous vous recommandons cet excellent article sur la configuration du débogage Docker et l'intégration avec les projets Visual Studio.

Nous vous recommandons également vivement de lire notre Guide d'installation et de compatibilité d'IronPDF pour Linux

Distributions Linux Docker recommandées

Nous recommandons les derniers systèmes d'exploitation Linux 64 bits ci-dessous pour une "configuration facile" d'IronPDF.

IronPDF Linux Docker Installation Essentials (en anglais)

Utiliser des paquets NuGet optimisés pour Linux

Nous vous recommandons d'utiliser le package NuGet IronPdf.Linux au lieu du package IronPdf habituel pour économiser de l'espace disque et éviter le téléchargement des ressources lorsque vous démarrez votre instance Docker. Ne vous inquiétez pas, il fonctionne toujours lorsque vous développez sous Windows ou macOS - il est simplement optimisé pour Linux.

:InstallCmd Install-Package IronPdf.Linux
:InstallCmd Install-Package IronPdf.Linux
SHELL

Une autre solution consiste simplement à ajouter IronPdf.Native.Chrome.Linux par-dessus le package NuGet régulier IronPdf.

:InstallCmd Install-Package IronPdf.Native.Chrome.Linux
:InstallCmd Install-Package IronPdf.Native.Chrome.Linux
SHELL

Éviter l'installation automatique de dépendances

De nombreux utilisateurs signalent de meilleurs résultats avec Linux & Docker lorsque LinuxAndDockerDependenciesAutoConfig est réglé sur false. C'est parce que les prérequis sont déjà installés par des gestionnaires de paquets de style apt-get déjà présents dans vos fichiers Docker.

IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
SHELL

Désactiver l'accélération du GPU

Les conteneurs Linux Docker n'ont souvent pas accès à un GPU. L'accélération GPU est désactivée par défaut. Si vous avez activé ChromeGpuModes.Enabled, nous vous recommandons fortement de le désactiver pour les déploiements Docker :

IronPdf.Installation.ChromeGpuMode=IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.ChromeGpuMode=IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
SHELL

"Initialisation "anticipée

Optionnellement, vous pouvez également souhaiter appeler la méthode IronPdf.Installation.Initialize() pour démarrer manuellement IronPDF. La toute première fois qu'une instance Docker utilise IronPDF, le téléchargement des prérequis peut prendre un certain temps. Nous pouvons éviter ce scénario en appelant ce code lors de la création de l'instance :

IronPdf.Installation.Initialize();
IronPdf.Installation.Initialize();
SHELL

Ubuntu Linux DockerFiles

Docker V1 related to Ubuntu Linux DockerFiles
Ubuntu V1 related to Ubuntu Linux DockerFiles

Ubuntu 22 avec .NET 8

Ubuntu 22 avec .NET 7

Ubuntu 20 avec .NET 6

Ubuntu 20 avec .NET 5

Ubuntu 20 avec .NET 3.1 LTS

Ubuntu 18 avec .NET 3.1 LTS

Debian Linux DockerFiles

Docker V1 related to Debian Linux DockerFiles
Debian V1 related to Debian Linux DockerFiles

Debian 12 avec .NET 8

Debian 11 avec .NET 7

Debian 11 avec .NET 6

Debian 11 avec .NET 5

Debian 11 avec .NET 3.1 LTS

Debian 10 avec .NET 5

Debian 10 avec .NET 3.1 LTS

Alpine Linux DockerFiles

L'exécution d'IronPDF sur Alpine Linux n'est pas prise en charge. Nous aimerions pouvoir le faire, mais nous ne le pouvons pas. Franchement, nous aimons Alpine et nous espérons que ce projet se poursuivra et se développera. En 2023, C# utilise encore des bibliothèques de langage C "musl" obsolètes qui ne permettent pas encore aux développeurs de Chromium de prendre pleinement en charge cet OS.

Utiliser Alpine Docker avec IronPdfEngine dans .NET 6

IronPdf fournit une image conteneur contenant toutes les fonctionnalités d'IronPdf. Cela permet aux projets fonctionnant sur IronPDF d'accéder aux fonctionnalités d'IronPdf en se connectant à un conteneur IronPdfEngine.

Étape 1 : Tirer et exécuter l'image Docker du moteur IronPDF

Exécutez les commandes suivantes dans votre terminal pour tirer et exécuter l'image Docker du moteur IronPDF :

docker pull ironsoftwareofficial/ironpdfengine
docker pull ironsoftwareofficial/ironpdfengine
SHELL
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
SHELL

Étape 2 : Configuration de l'application Console

Créez une nouvelle application console ciblant .NET 6.

Installez le package NuGet IronPdf.Slim à l'aide du gestionnaire de packages NuGet.

IronPDF Conteneurs Docker pour Windows

Docker V1 related to IronPDF Conteneurs Docker pour Windows
Windows Logo V1 related to IronPDF Conteneurs Docker pour Windows

Les conteneurs Windows Docker sont de plus en plus populaires sur Azure, car ils offrent des niveaux de performance et d'évolutivité plus élevés, et donnent aux développeurs plus de permissions pour configurer les instances.

IronPDF effectuera en réalité un rendu de texte plus attractif dans un conteneur Docker (Windows ou Linux) sur Azure en raison d'un accès plus élevé à la bibliothèque graphique et à la carte graphique virtuelle.

L'article 'Visual Studio Container Tools for Docker' est un excellent guide pour débuter.

Voici un exemple de fichier Docker de conteneur Windows pour .NET Core 3.1

Windows Server 2019 .NET 6.0

Conteneurs Windows préconfigurés comprenant toutes les dépendances nécessaires à l'exécution d'IronPDF.

A noter
Notez que ces conteneurs ne sont pas destinés à CONSTRUIRE des applications .NET, mais plutôt à les EXÉCUTER.

FROM mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2019 AS build
WORKDIR /src
COPY ["nuget.config", "."]
COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
COPY . .
WORKDIR "/src/ConsoleApp"
RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM ironsoftwareofficial/windows:2019-net60
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ConsoleApp.dll"]
FROM mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2019 AS build
WORKDIR /src
COPY ["nuget.config", "."]
COPY ["ConsoleApp/ConsoleApp.csproj", "ConsoleApp/"]
RUN dotnet restore "ConsoleApp/ConsoleApp.csproj"
COPY . .
WORKDIR "/src/ConsoleApp"
RUN dotnet build "ConsoleApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ConsoleApp.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM ironsoftwareofficial/windows:2019-net60
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ConsoleApp.dll"]
SHELL

Visitez le dépôt Docker de IronSoftware sur Docker Hub pour explorer d'autres images préconfigurées pour exécuter IronPdf.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.