# Uruchom IronPDF jako zdalny kontener
IronPdfEngine to samodzielna usługa, która może obsługiwać tworzenie, zapisywanie, edytowanie i czytanie plików PDF. IronPDF Docker jest gotowy do uruchamiania usług docker z kompatybilnymi wersjami IronPDF (v2023.2.x i nowszymi). To pomoże programistom wyeliminować problemy z wdrażaniem, których mogą doświadczać z IronPDF.
## Dlaczego uruchamianie IronPDF jako osobnego kontenera to dobry pomysł
IronPDF wymaga zarówno Chrome, jak i binariów Pdfium do działania, które są ogromne (setki MB). Wymaga również zainstalowania kilku zależności na komputerze.
Korzystając z tej metody, twój klient zajmie tylko część rozmiaru (w MB).
### Uniknięcie problemów z wdrożeniem
Może być wyzwaniem skonfigurowanie środowiska/kontenera tak, aby poprawnie uwzględniało wszystkie zależności. Korzystanie z kontenera Docker IronPDF oznacza, że IronPDF jest _wstępnie zainstalowany_ i _gwarantowany_ do działania, unikając wszelkich problemów z wdrożeniem i zależnościami.
## Wersje
Tag Docker IronPDF opiera się na wersji samego IronPdfEngine. Nie jest to ta sama wersja co produkt IronPDF.
Każda wersja IronPDF będzie miała swoją własną związaną wersję IronPdfEngine. Numer wersji **musi** zgadzać się z wersją Docker IronPDF.
Na przykład, wersja `IronPDF for Java` wymaga wersji `2023.2.1` IronPdfEngine. Nie **można** używać niepasujących wersji IronPdfEngine i IronPDF.
<hr />
## Jak używać IronPDF Docker
### Zainstaluj IronPDF
Dodaj pakiet IronPdf.Slim NuGet do swojego projektu.
[https://www.nuget.org/packages/IronPdf.Slim/](https://www.nuget.org/packages/IronPdf.Slim/)
**Uwaga: pakiety `IronPdf`, `IronPdf.Linux` i `IronPdf.MacOs` wszystkie zawierają IronPdf.Slim.**
Aby zmniejszyć rozmiar aplikacji, zalecamy zainstalowanie tylko IronPdf.Slim. Pakiet `IronPdf.Native.Chrome.xxx` nie jest już używany, więc możesz go usunąć z projektu.
### Określenie wymaganej wersji kontenera
Domyślnie, wersja IronPDF dla Docker będzie odpowiadać aktualnej wersji IronPDF na NuGet. Możesz użyć poniższego kodu, aby ręcznie sprawdzić wersję:
```csharp
string ironPdfEngineVersion = IronPdf.Installation.IronPdfEngineVersion;
```
### Skonfiguruj IronPDF dla kontenera Docker
#### Bez Docker Compose
Uruchom kontener docker używając wersji z poprzedniego kroku.
* Docker musi być zainstalowany.
**Konfiguracja**
1. Przejdź do [https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine](https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine)
2. Pobierz najnowszy obraz ironsoftwareofficial/ironpdfengine
```shell
docker pull ironsoftwareofficial/ironpdfengine
```
Lub pobierz konkretną wersję (zalecane)
```shell
docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
```
3. Uruchom kontener ironsoftwareofficial/ironpdfengine.
Polecenie to utworzy kontener i uruchomi go w tle z portem 33350
```shell
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
```
### Jak skonfigurować parametry czasu wykonania IronPdfEngine?
Parametry uruchomieniowe mogą być przekazywane bezpośrednio do kontenera jako pary `key=value` po nazwie obrazu. Te konfigurują zachowanie silnika bez potrzeby przebudowywania obrazu.
```shell
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine:2025.3.6 \
license_key="YOUR_LICENSE_KEY" \
enable_debug=true \
chrome_browser_limit=8
```
Dostępne są następujące parametry:
| Parametr | Typ| Default | Opis |
|-----------|------|---------|-------------|
| `port` | int | `33350` | gRPC nasłuchujący port |
| `license_key` | string | - | Klucz licencyjny IronPDF |
| `enable_debug` | bool | `false` | Włącz pełne logowanie debugowania |
| `log_path` | path | - | Ścieżka pliku logu (również włącza pełne logowanie debugowania) |
| `logging_mode` | string | `Console` | Tryb logowania: Brak, Konsola, Niestandardowy, Okno wyjścia debugowania, Plik, Wszystko |
| `chrome_browser_limit` | int | - | Maksymalna liczba jednoczesnych instancji przeglądarki Chrome |
| `chrome_cache_path` | path | - | Katalog dla pamięci cache przeglądarki Chrome |
| `chrome_gpu_mode` | int | `0` | Tryb GPU: 0 Wyłączone, 1 Sprzęt, 2 Pełny sprzęt, 3 Oprogramowanie |
| `chrome_custom_deployment_dir` | path | - | Niestandardowy katalog dla binariów wdrożenia Chrome |
| `temp_folder_path` | path | - | Zastąp katalog tymczasowy |
| `skip_shutdown` | bool | `false` | Zapobiegaj zamykaniu silnika, gdy jest bezczynny |
| `skip_initialization` | bool | `false` | Pomiń inicjalizację Chrome/Pdfium przy starcie |
| `keep_alive` | bool | `false` | Utrzymuj uruchomiony silnik po rozłączeniu klienta |
| `single_process` | bool | - | Uruchom Chrome w trybie jednoprocesowym |
| `linux_and_docker_auto_config` | bool | `true` | Automatyczna konfiguracja zależności Linux/Docker (ustawiony automatycznie przez punkt wejścia Docker) |
| `send_anonymous_analytics_and_crash_data` | bool | - | Włącz lub wyłącz anonimową telemetrię |
[[i:(Parametr `linux_and_docker_auto_config` jest automatycznie ustawiany na true przez punkt wejścia Docker. Nie musisz go przekazywać ręcznie. W Dockerze `chrome_gpu_mode` powinno pozostać 0 (wyłączone), chyba że twój host udostępnia GPU passthrough.)]]
Zmienne środowiskowe `IRONPDF_ENGINE_LICENSE_KEY` można również użyć do ustawienia klucza licencyjnego za pomocą `-e` albo `environment:` w Docker Compose. Parametry wiersza poleceń mają pierwszeństwo przed zmiennymi środowiskowymi, gdy oba są ustawione.
**Przykład produkcji:**
```shell
docker run -d --restart=unless-stopped \
-p 33350:33350 \
-e IRONPDF_ENGINE_LICENSE_KEY=MY_KEY \
ironsoftwareofficial/ironpdfengine \
chrome_browser_limit=8 skip_shutdown=true
```
**Przykład debugowania:**
```shell
docker run -p 33350:33350 \
ironsoftwareofficial/ironpdfengine \
enable_debug=true log_path=/app/logs/engine.log
```
#### Z Docker Compose
Kluczowe jest ustawienie sieci Docker, która pozwala IronPdfEngine i twojej aplikacji widzieć się nawzajem. Ustaw 'depends_on', aby upewnić się, że IronPdfEngine jest uruchomiony, zanim twoja aplikacja wystartuje.
**Konfiguracja**
1. Zacznij od utworzenia pliku `docker-compose.yml`. Skonfiguruj plik Docker Compose korzystając z poniższego szablonu:
```yml
version: '3.6'
services:
myironpdfengine:
container_name: ironpdfengine
image: ironsoftwareofficial/ironpdfengine:latest
ports:
- '33350:33350'
networks:
- ironpdf-network
myconsoleapp:
container_name: myconsoleapp
build:
# enter YOUR project directory path here
context: ./MyConsoleApp/
# enter YOUR dockerfile name here, relative to project directory
dockerfile: Dockerfile
networks:
- ironpdf-network
depends_on:
myironpdfengine:
condition: service_started
networks:
ironpdf-network:
driver: 'bridge'
```
1. Ustaw adres IronPdfEngine wewnątrz twojej aplikacji (myconsoleapp) na "myironpdfengine:33350"
2. Uruchom docker compose
```shell
docker compose up --detach --force-recreate --remove-orphans --timestamps
```
### Połącz się z IronPdfEngine
Uruchom swój kod IronPDF; twoja aplikacja teraz komunikuje się z IronPdfEngine w Docker!
```csharp
using IronPdf;
using IronPdf.GrpcLayer;
// Configure for Docker container
var config = IronPdfConnectionConfiguration.Docker;
config.Host = "localhost";
IronPdf.Installation.ConnectToIronPdfHost(config);
// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");
```
<hr />
### Typ połączenia
Istnieje kilka `IronPdfConnectionType`, które można przypisać w zależności od typu połączenia, które chcesz nawiązać.
Oto lista dostępnych właściwości:
**LocalExecutable**: Aby polaczyc sie z "serwerem" IronPdfEngine uruchamianym na lokalnym komputerze, korzystamy z tej opcji. Szybki przykład to aplikacja fakturowania WinForm, która generuje pliki PDF lokalnie bez polegania na usługach w chmurze.
**Docker**: Tę opcję należy użyć, gdy próbujemy połączyć się z kontenerem Docker lokalnie lub w chmurze.
**RemoteServer**: Ta opcja jest używana dla IronPdfEngine w chmurze. Łączy się z instancją IronPdfEngine hostowaną w chmurze (np. Docker) przez protokół HTTP lub HTTPS. Zauważ, że ponieważ łączy się z serwerem zdalnym, wymagany jest pełny URL (w tym protokół HTTP lub HTTPS).
**Custom**: Dla pełnej kontroli i personalizacji połączenia, można użyć tej opcji. Opcja ta używa zdefiniowanego własnoręcznie **Grpc.Core.ChannelBase** zamiast innych zdefiniowanych opcji powyżej. Programiści mogą tworzyć nowy kanał tworząc nowy obiekt **Grpc.Core.Channel** lub używając **`Grpc.Net.Client.GrpcChannel.ForAddress(System.String)`** dla pełnej kontroli nad kanałem gRPC.
#### .NET Framework z NetFrameworkChannel
Dla .NET Framework, wymagana jest inna konfiguracja, ponieważ gRPC działa inaczej w projektach .NET Framework.
Aby ta metoda działała, upewnij się, że pakiet NuGet [**Grpc.Core**](https://www.nuget.org/packages/grpc.core) jest zainstalowany. Użyjemy niestandardowego kanału gRPC wyprowadzonego z **Grpc.Core.ChannelBase** dla tej konkretnej konfiguracji.
Przyjrzyjmy się temu przykładowi, gdzie wdrożymy kanał połączenia do tworzenia i zapisywania plików PDF przy użyciu IronPdfEngine.
[[t:(Ponieważ gRPC działa inaczej w projekcie .NET Framework, jeśli poniższy kod nie działa, spróbuj usunąć prefiks `<http>` lub `<https>` w adresie.)]]
[[w:(Należy zauważyć, że w tym przypadku wymagane jest `pdf.Dispose`.)]]
```csharp
using IronPdf;
// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.
// 1. Configure connection to use local IronPdfEngine executable
var config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;
// 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config);
// 3. Create a PDF renderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();
// 4. Render HTML string as PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
```
#### Alternatywna metoda z WithCustomChannel
Alternatywna metoda wykorzystuje metodę `WithCustomChannel` dostarczoną przez `IronPdf.GrpcLayer`.
`WithCustomChannel` akceptuje dwa parametry: `customChannel`, który jest twoim niestandardowym kanałem gRPC, oraz `metadata`. Parametr `metadata` jest opcjonalny i domyślnie ustawiony na `null`.
```csharp
using IronPdf;
using IronPdf.GrpcLayer;
using Grpc.Core;
// 1. Create custom gRPC channel (.NET Framework style)
var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);
// 2. (Optional) Add metadata headers if needed
var metadata = new Metadata
{
{ "Authorization", "Bearer your_token_here" }
};
// 3. Configure IronPDF with custom channel
var config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);
IronPdf.Installation.ConnectToIronPdfHost(config);
// 4. Generate PDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
```
<hr />
## Wdróż IronPdfEngine na AWS ECS
### Wymagania wstępne
* Pobierz obraz Docker IronPdfEngine. To jest opisane w powyżej [Konfiguracja kontenera Docker dla IronPDF](#anchor-setup-ironpdf-for-docker-container).
* Konto AWS z dostępem do ECS.
### Konfiguracja
1. Utwórz klaster ECS. Postepuj zgodnie z tym przewodnikiem [tworzenia klastra dla typow uruchamiania Fargate i External uzywajac konsoli](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-cluster-console-v2.html).
2. Utwórz definicję zadania. Postępuj zgodnie z tym przewodnikiem [tworzenia definicji zadania używając konsoli](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html).
Zalecane ustawienia:
- **AWS Fargate**
- Zalecana jest minimalna 1 vCPU z 2 GB RAM. W zależności od obciążenia pracą, jeśli pracujesz z plikami PDF zawierającymi więcej niż 10 stron lub doświadczasz dużych żądań obciążenia, wybierz wyższy poziom.
- **Tryb sieciowy**: awsvpc
- **Mapowanie portów**:
```json
{
"containerPort": 33350,
"hostPort": 33350,
"protocol": "tcp",
"appProtocol": "grpc"
}
```
- **URI obrazu**: wskaż dowolny IronPdfEngine od nas. Na przykład, "ironsoftwareofficial/ironpdfengine:2024.1.20" (z DockerHub)
- **Uprawnienia AWS** & **Sieciowanie** są na twojej własnej odpowiedzialności
- **Włącz Amazon CloudWatch** jest zalecane. (Enable logging)
- **Kolejność uruchamiania kontenera** jest konieczna, jeśli chcesz wdrożyć kontener aplikacji w tej samej definicji zadania.
3. Uruchom definicję zadania. Możesz uruchomić definicję zadania jako **Zadanie** lub **Usługa**. Postępuj zgodnie z tym przewodnikiem o [tworzeniu usługi używając konsoli](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html).
Zalecane ustawienia:
* Typ uruchomienia: **AWS Fargate**
* Publiczny IP: **Włączony** dla testu i **Wyłączony** dla produkcji. Bezpieczeństwo i sieciowanie AWS są na twojej odpowiedzialności.
4. Ciesz się! IronPdfEngine docker działa w Twoim AWS!
[[i:(Sam kontener Docker IronPdfEngine nie obsługuje skalowania poziomego; Została zaprojektowana jako usługa backendowa z pojedynczą instancją. Twoja aplikacja korzystająca z biblioteki IronPDF (z IronPdfEngine lub bez) nadal może skalować się horyzontalnie poprzez wdrożenie wielu instancji aplikacji. Więcej szczegółów można znaleźć w sekcji [Ograniczenia IronPdfEngine](/get-started/ironpdfengine/#anchor-ironpdfengine-limitation).)]]
<hr />
## Wdróż IronPdfEngine w Azure Container Instances
### Wymagania wstępne
* Pobierz obraz Docker IronPdfEngine. To jest opisane w powyżej [Konfiguracja kontenera Docker dla IronPDF](#anchor-setup-ironpdf-for-docker-container).
* Konto Azure
### Konfiguracja
1. Utwórz kontener Azure. Skorzystaj z tego [przewodnika szybkiego startu na wdrożenie instancji kontenera w Azure przy użyciu portalu Azure](https://learn.microsoft.com/en-us/azure/container-instances/container-instances-quickstart-portal).
Zalecane ustawienia:
- **Źródło obrazu**: Inna rejestracja
- **Obraz**: **ironsoftwareofficial/ironpdfengine:2024.1.20** (z Docker Hub)
- **Typ systemu operacyjnego**: Linux
- **Rozmiar**: Minimum 1 vCPU i 2 GiB pamięci, lub więcej
- **Port**: port TCP 33350
2. Ciesz się! IronPdfEngine docker działa w Twoich instancjach kontenera Azure!
[[i:(Kontener Docker IronPdfEngine nie obsługuje skalowania poziomego; zaprojektowany jako usługa backendowa z pojedynczą instancją. Twoja aplikacja korzystająca z biblioteki IronPDF (z IronPdfEngine lub bez) nadal może skalować się horyzontalnie poprzez wdrożenie wielu instancji aplikacji. Więcej informacji można znaleźć w sekcji [Ograniczenia IronPdfEngine](/get-started/ironpdfengine/#anchor-ironpdfengine-limitation).)]]
<hr />
## Pobieranie IronPdfEngine w AWS ECR Public Gallery
### Wymagania wstępne
* Docker musi być zainstalowany.
### Konfiguracja
1. Przejdź do [https://gallery.ecr.aws/v1m9w8y1/ironpdfengine](https://gallery.ecr.aws/v1m9w8y1/ironpdfengine)
2. Pobierz obraz v1m9w8y1/ironpdfengine
```shell
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
```
Lub pobierz konkretną wersję (zalecane)
```shell
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine:2023.12.6
```
3. Uruchom kontener ironpdfengine.
Polecenie to utworzy kontener i uruchomi go w tle z portem 33350
```shell
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
```
Dowiedz sie, jak skonfigurowac klienta IronPDF, aby wykorzystac IronPdfEngine, przechodzac do sekcji "[Aktualizuj kod, aby korzystac z IronPdfEngine](#anchor-update-the-code-to-use-ironpdfengine)."
<hr />
## Pobierz IronPdfEngine z Marketu
Aby pomóc Ci szybko rozpocząć, skonfigurowaliśmy IronPdfEngine zarówno w Azure, jak i na rynkach AWS.
### Rynek Azure
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a href="https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ironsoftwarecoltd1682560478296.ironpdf-docker-container-v1?tab=Overview"><img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/azure-marketplace.webp" alt="Rynek Azure" class="img-responsive add-shadow" /></a>
</div>
</div>
**Konfiguracja**
1. Przejdź do [IronPDF Docker Container na Rynek Azure](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/ironsoftwarecoltd1682560478296.ironpdf-docker-container-v1?tab=Overview). Kliknij "Pobierz teraz" i "Kontynuuj."
2. Uzupełnij "Podstawy", "Szczegóły klastra" i "Szczegóły aplikacji", aby utworzyć usługę Kubernetes.
3. Po zakończeniu wdrożenia, przejdź do lewego paska bocznego i wybierz Zasoby Kubernetes> Uruchom polecenie. Uruchom następujące polecenie:
```shell
kubectl get services
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/azure-market-run-command.webp" alt="Usługa Kubernetes - uruchom polecenie" class="img-responsive add-shadow" />
</div>
</div>
Z informacjami o EXTERNAL-IP i PORT(S), możesz skonfigurować połączenie IronPdfEngine zgodnie z potrzebami.
```csharp
using IronPdf;
using IronPdf.GrpcLayer;
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");
```
### Rynek AWS
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a href="https://aws.amazon.com/marketplace/pp/prodview-t66wmni5ri7ve?sr=0-1&ref_=beagle&applicationId=AWSMPContessa"><img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/aws-marketplace.webp" alt="aws marketplace" class="img-responsive add-shadow" /></a>
</div>
</div>
**Wymagania wstępne**
* Docker musi być zainstalowany.
* CLI AWS musi być zainstalowane i zalogowane.
**Konfiguracja**
1. Przejdź do [IronPdfEngine na rynku AWS](https://aws.amazon.com/marketplace/pp/prodview-t66wmni5ri7ve?sr=0-1&ref_=beagle&applicationId=AWSMPContessa). Kliknij 'Przejdź do subskrypcji.'
3. Zaakceptuj warunki.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/accept-EULA.webp" alt="Zaakceptuj EULA" class="img-responsive add-shadow" />
</div>
</div>
4. Przejdź do konfiguracji.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/subscribe-complete.webp" alt="Subskrypcja zakończona" class="img-responsive add-shadow" />
</div>
</div>
5. Pobierz obraz ironpdfengine. Ten krok pokaże Ci polecenie do pobrania obrazu ironpdfengine.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/pull-run-ironpdfengine/launch-this-software.webp" alt="Uruchom to oprogramowanie" class="img-responsive add-shadow" />
</div>
</div>
Na przykład:
```shell
aws ecr get-login-password \
--region us-east-1 | docker login \
--username AWS \
--password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com
CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15"
for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done
```
6. Uruchom kontener ironpdfengine. To polecenie utworzy kontener i uruchomi go w tle z portem 33350.
```shell
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
```
## Sprawdzenie kondycji dla IronPdfEngine
Sprawdzanie kondycji Twojego kontenera Docker jest kluczowe, aby zapewnić niezawodność i dostępność w środowisku produkcyjnym. Możliwość sprawdzenia kontenera Docker IronPdfEngine pozwala programistom zrestartować usługę, jeśli zawiedzie, oraz skalować zasoby, jeśli wzrośnie popyt razem z monitorowaniem ciągłej aplikacji.
Aby sprawdzić kondycję Twojego IronPdfEngine, możemy wysłać żądanie gRPC do tego samego portu IronPdfEngine (domyślnie będzie to 33350), aby zweryfikować, czy otrzymujemy odpowiedź.
### Sprawdzenie kondycji z użyciem gRPC
IronPdfEngine stosuje się do standardowego wzorca sprawdzania kondycji gRPC, wykorzystując następującą strukturę protokołu.
```protobuf
message HealthCheckRequest {
string service = 1; // Name of the service to check (e.g., "IronPdfEngine")
}
```
Ponieważ sprawdzamy IronPdfEngine, zastępujemy nazwę usługi przez `IronPdfEngine`.
Oto przykład użycia JavaScript z [Postman](https://www.postman.com) do wysłania żądania gRPC do lokalnej usługi IronPdfEngine z domyślnym numerem 33350.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/Ironpdfengine-docker/servicestatus.webp" alt="Status" class="img-responsive add-shadow" />
</div>
</div>
Jak można zauważyć w odpowiedzi, odpowiedź statusu jest `SERVING`, co oznacza, że usługa działa poprawnie. Jeśli kontener nie jest zdrowy, odpowiedź statusu będzie `NOT_SERVING`.
### Sprawdzenie kondycji z ustawieniem Kubernetes
Dla ustawień Kubernetes, możemy użyć poniższego, aby sprawdzić, czy usługa jest zdrowa.
```yaml
livenessProbe:
exec:
command:
- /bin/grpc_health_probe
- -addr=:33350
- -rpc-timeout=5s
```
IronPdfEngine to samodzielna usługa, która może obsługiwać tworzenie, zapisywanie, edytowanie i czytanie plików PDF. IronPDF Docker jest gotowy do uruchamiania usług docker z kompatybilnymi wersjami IronPDF (v2023.2.x i nowszymi). To pomoże programistom wyeliminować problemy z wdrażaniem, których mogą doświadczać z IronPDF.
Dlaczego uruchamianie IronPDF jako osobnego kontenera to dobry pomysł
IronPDF wymaga zarówno Chrome, jak i binariów Pdfium do działania, które są ogromne (setki MB). Wymaga również zainstalowania kilku zależności na komputerze.
Korzystając z tej metody, twój klient zajmie tylko część rozmiaru (w MB).
Uniknięcie problemów z wdrożeniem
Może być wyzwaniem skonfigurowanie środowiska/kontenera tak, aby poprawnie uwzględniało wszystkie zależności. Korzystanie z kontenera Docker IronPDF oznacza, że IronPDF jest wstępnie zainstalowany i gwarantowany do działania, unikając wszelkich problemów z wdrożeniem i zależnościami.
Wersje
Tag Docker IronPDF opiera się na wersji samego IronPdfEngine. Nie jest to ta sama wersja co produkt IronPDF.
Każda wersja IronPDF będzie miała swoją własną związaną wersję IronPdfEngine. Numer wersji musi zgadzać się z wersją Docker IronPDF.
Na przykład, wersja IronPDF for Java wymaga wersji 2023.2.1 IronPdfEngine. Nie można używać niepasujących wersji IronPdfEngine i IronPDF.
Jak używać IronPDF Docker
Zainstaluj IronPDF
Dodaj pakiet IronPdf.Slim NuGet do swojego projektu.
Uwaga: pakiety IronPdf, IronPdf.Linux i IronPdf.MacOs wszystkie zawierają IronPdf.Slim.
Aby zmniejszyć rozmiar aplikacji, zalecamy zainstalowanie tylko IronPdf.Slim. Pakiet IronPdf.Native.Chrome.xxx nie jest już używany, więc możesz go usunąć z projektu.
Określenie wymaganej wersji kontenera
Domyślnie, wersja IronPDF dla Docker będzie odpowiadać aktualnej wersji IronPDF na NuGet. Możesz użyć poniższego kodu, aby ręcznie sprawdzić wersję:
Polecenie to utworzy kontener i uruchomi go w tle z portem 33350
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL
Jak skonfigurować parametry czasu wykonania IronPdfEngine?
Parametry uruchomieniowe mogą być przekazywane bezpośrednio do kontenera jako pary key=value po nazwie obrazu. Te konfigurują zachowanie silnika bez potrzeby przebudowywania obrazu.
Niestandardowy katalog dla binariów wdrożenia Chrome
temp_folder_path
path
-
Zastąp katalog tymczasowy
skip_shutdown
bool
false
Zapobiegaj zamykaniu silnika, gdy jest bezczynny
skip_initialization
bool
false
Pomiń inicjalizację Chrome/Pdfium przy starcie
keep_alive
bool
false
Utrzymuj uruchomiony silnik po rozłączeniu klienta
single_process
bool
-
Uruchom Chrome w trybie jednoprocesowym
linux_and_docker_auto_config
bool
true
Automatyczna konfiguracja zależności Linux/Docker (ustawiony automatycznie przez punkt wejścia Docker)
send_anonymous_analytics_and_crash_data
bool
-
Włącz lub wyłącz anonimową telemetrię
Zwróć uwagę: Parametr linux_and_docker_auto_config jest automatycznie ustawiany na true przez punkt wejścia Docker. Nie musisz go przekazywać ręcznie. W Dockerze chrome_gpu_mode powinno pozostać 0 (wyłączone), chyba że twój host udostępnia GPU passthrough.
Zmienne środowiskowe IRONPDF_ENGINE_LICENSE_KEY można również użyć do ustawienia klucza licencyjnego za pomocą -e albo environment: w Docker Compose. Parametry wiersza poleceń mają pierwszeństwo przed zmiennymi środowiskowymi, gdy oba są ustawione.
docker run -p 33350:33350 \ ironsoftwareofficial/ironpdfengine \ enable_debug=true log_path=/app/logs/engine.log
docker run -p 33350:33350 \
ironsoftwareofficial/ironpdfengine \
enable_debug=true log_path=/app/logs/engine.log
SHELL
Z Docker Compose
Kluczowe jest ustawienie sieci Docker, która pozwala IronPdfEngine i twojej aplikacji widzieć się nawzajem. Ustaw 'depends_on', aby upewnić się, że IronPdfEngine jest uruchomiony, zanim twoja aplikacja wystartuje.
Konfiguracja
Zacznij od utworzenia pliku docker-compose.yml. Skonfiguruj plik Docker Compose korzystając z poniższego szablonu:
version: '3.6'services: myironpdfengine: container_name: ironpdfengine image: ironsoftwareofficial/ironpdfengine:latest ports: - '33350:33350' networks: - ironpdf-network myconsoleapp: container_name: myconsoleapp build: # enter YOUR project directory path here context: ./MyConsoleApp/ # enter YOUR dockerfile name here, relative to project directory dockerfile: Dockerfile networks: - ironpdf-network depends_on: myironpdfengine: condition: service_startednetworks: ironpdf-network: driver: 'bridge'
version: '3.6'
services:
myironpdfengine:
container_name: ironpdfengine
image: ironsoftwareofficial/ironpdfengine:latest
ports:
- '33350:33350'
networks:
- ironpdf-network
myconsoleapp:
container_name: myconsoleapp
build:
# enter YOUR project directory path here
context: ./MyConsoleApp/
# enter YOUR dockerfile name here, relative to project directory
dockerfile: Dockerfile
networks:
- ironpdf-network
depends_on:
myironpdfengine:
condition: service_started
networks:
ironpdf-network:
driver: 'bridge'
Text
Ustaw adres IronPdfEngine wewnątrz twojej aplikacji (myconsoleapp) na "myironpdfengine:33350"
Uruchom docker compose
docker compose up --detach --force-recreate --remove-orphans --timestamps
docker compose up --detach --force-recreate --remove-orphans --timestamps
SHELL
Połącz się z IronPdfEngine
Uruchom swój kod IronPDF; twoja aplikacja teraz komunikuje się z IronPdfEngine w Docker!
using IronPdf;using IronPdf.GrpcLayer;// Configure for Docker containervar config = IronPdfConnectionConfiguration.Docker;config.Host = "localhost";IronPdf.Installation.ConnectToIronPdfHost(config);// Use IronPDFChromePdfRenderer renderer = new ChromePdfRenderer();PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");pdf.SaveAs("ironpdf.pdf");
using IronPdf;
using IronPdf.GrpcLayer;
// Configure for Docker container
var config = IronPdfConnectionConfiguration.Docker;
config.Host = "localhost";
IronPdf.Installation.ConnectToIronPdfHost(config);
// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");
ImportsIronPdfImportsIronPdf.GrpcLayer' Configure for Docker containerPrivate config = IronPdfConnectionConfiguration.Dockerconfig.Host = "localhost"IronPdf.Installation.ConnectToIronPdfHost(config)' Use IronPDFDim renderer As New ChromePdfRenderer()Dim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")pdf.SaveAs("ironpdf.pdf")
Imports IronPdf
Imports IronPdf.GrpcLayer
' Configure for Docker container
Private config = IronPdfConnectionConfiguration.Docker
config.Host = "localhost"
IronPdf.Installation.ConnectToIronPdfHost(config)
' Use IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")
pdf.SaveAs("ironpdf.pdf")
Typ połączenia
Istnieje kilka IronPdfConnectionType, które można przypisać w zależności od typu połączenia, które chcesz nawiązać.
Oto lista dostępnych właściwości:
LocalExecutable: Aby polaczyc sie z "serwerem" IronPdfEngine uruchamianym na lokalnym komputerze, korzystamy z tej opcji. Szybki przykład to aplikacja fakturowania WinForm, która generuje pliki PDF lokalnie bez polegania na usługach w chmurze.
Docker: Tę opcję należy użyć, gdy próbujemy połączyć się z kontenerem Docker lokalnie lub w chmurze.
RemoteServer: Ta opcja jest używana dla IronPdfEngine w chmurze. Łączy się z instancją IronPdfEngine hostowaną w chmurze (np. Docker) przez protokół HTTP lub HTTPS. Zauważ, że ponieważ łączy się z serwerem zdalnym, wymagany jest pełny URL (w tym protokół HTTP lub HTTPS).
Custom: Dla pełnej kontroli i personalizacji połączenia, można użyć tej opcji. Opcja ta używa zdefiniowanego własnoręcznie Grpc.Core.ChannelBase zamiast innych zdefiniowanych opcji powyżej. Programiści mogą tworzyć nowy kanał tworząc nowy obiekt Grpc.Core.Channel lub używając Grpc.Net.Client.GrpcChannel.ForAddress(System.String) dla pełnej kontroli nad kanałem gRPC.
.NET Framework z NetFrameworkChannel
Dla .NET Framework, wymagana jest inna konfiguracja, ponieważ gRPC działa inaczej w projektach .NET Framework.
Aby ta metoda działała, upewnij się, że pakiet NuGet Grpc.Core jest zainstalowany. Użyjemy niestandardowego kanału gRPC wyprowadzonego z Grpc.Core.ChannelBase dla tej konkretnej konfiguracji.
Przyjrzyjmy się temu przykładowi, gdzie wdrożymy kanał połączenia do tworzenia i zapisywania plików PDF przy użyciu IronPdfEngine.
Porady: Ponieważ gRPC działa inaczej w projekcie .NET Framework, jeśli poniższy kod nie działa, spróbuj usunąć prefiks <http> lub <https> w adresie.
Ostrzeżenie: Należy zauważyć, że w tym przypadku wymagane jest pdf.Dispose.
using IronPdf;// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.// 1. Configure connection to use local IronPdfEngine executablevar config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;// 2. Connect to the IronPDF host with the executable configurationIronPdf.Installation.ConnectToIronPdfHost(config);// 3. Create a PDF renderer instanceChromePdfRenderer renderer = new ChromePdfRenderer();// 4. Render HTML string as PDF documentPdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");// 5. Save the PDF to diskpdf.SaveAs("output.pdf");// 6. Clean up , this is needed to workpdf.Dispose();
using IronPdf;
// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.
// 1. Configure connection to use local IronPdfEngine executable
var config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;
// 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config);
// 3. Create a PDF renderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();
// 4. Render HTML string as PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
ImportsIronPdf' This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.' 1. Configure connection to use local IronPdfEngine executableDim config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable' 2. Connect to the IronPDF host with the executable configurationIronPdf.Installation.ConnectToIronPdfHost(config)' 3. Create a PDF renderer instanceDim renderer As New ChromePdfRenderer()' 4. Render HTML string as PDF documentDim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("Hello world")' 5. Save the PDF to diskpdf.SaveAs("output.pdf")' 6. Clean up, this is needed to workpdf.Dispose()
Imports IronPdf
' This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.
' 1. Configure connection to use local IronPdfEngine executable
Dim config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable
' 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config)
' 3. Create a PDF renderer instance
Dim renderer As New ChromePdfRenderer()
' 4. Render HTML string as PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("Hello world")
' 5. Save the PDF to disk
pdf.SaveAs("output.pdf")
' 6. Clean up, this is needed to work
pdf.Dispose()
Alternatywna metoda z WithCustomChannel
Alternatywna metoda wykorzystuje metodę WithCustomChannel dostarczoną przez IronPdf.GrpcLayer.
WithCustomChannel akceptuje dwa parametry: customChannel, który jest twoim niestandardowym kanałem gRPC, oraz metadata. Parametr metadata jest opcjonalny i domyślnie ustawiony na null.
using IronPdf;using IronPdf.GrpcLayer;using Grpc.Core;// 1. Create custom gRPC channel (.NET Framework style)var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);// 2. (Optional) Add metadata headers if neededvar metadata = new Metadata{ { "Authorization", "Bearer your_token_here" }};// 3. Configure IronPDF with custom channelvar config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);IronPdf.Installation.ConnectToIronPdfHost(config);// 4. Generate PDFvar renderer = new ChromePdfRenderer();PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");// 5. Save the PDF to diskpdf.SaveAs("output.pdf");// 6. Clean up , this is needed to workpdf.Dispose();
using IronPdf;
using IronPdf.GrpcLayer;
using Grpc.Core;
// 1. Create custom gRPC channel (.NET Framework style)
var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);
// 2. (Optional) Add metadata headers if needed
var metadata = new Metadata
{
{ "Authorization", "Bearer your_token_here" }
};
// 3. Configure IronPDF with custom channel
var config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);
IronPdf.Installation.ConnectToIronPdfHost(config);
// 4. Generate PDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");
// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");
// 6. Clean up , this is needed to work
pdf.Dispose();
ImportsIronPdfImportsIronPdf.GrpcLayerImportsGrpc.Core' 1. Create custom gRPC channel (.NET Framework style)Dim channel As New Channel("123.456.7.8:80", ChannelCredentials.SecureSsl)' 2. (Optional) Add metadata headers if neededDim metadata As New MetadataFrom { {"Authorization", "Bearer your_token_here"}}' 3. Configure IronPDF with custom channelDim config AsIronPdfConnectionConfiguration = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata)IronPdf.Installation.ConnectToIronPdfHost(config)' 4. Generate PDFDim renderer As New ChromePdfRenderer()Dim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("Hello world")' 5. Save the PDF to diskpdf.SaveAs("output.pdf")' 6. Clean up, this is needed to workpdf.Dispose()
Imports IronPdf
Imports IronPdf.GrpcLayer
Imports Grpc.Core
' 1. Create custom gRPC channel (.NET Framework style)
Dim channel As New Channel("123.456.7.8:80", ChannelCredentials.SecureSsl)
' 2. (Optional) Add metadata headers if needed
Dim metadata As New Metadata From {
{"Authorization", "Bearer your_token_here"}
}
' 3. Configure IronPDF with custom channel
Dim config As IronPdfConnectionConfiguration = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata)
IronPdf.Installation.ConnectToIronPdfHost(config)
' 4. Generate PDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("Hello world")
' 5. Save the PDF to disk
pdf.SaveAs("output.pdf")
' 6. Clean up, this is needed to work
pdf.Dispose()
Zalecana jest minimalna 1 vCPU z 2 GB RAM. W zależności od obciążenia pracą, jeśli pracujesz z plikami PDF zawierającymi więcej niż 10 stron lub doświadczasz dużych żądań obciążenia, wybierz wyższy poziom.
URI obrazu: wskaż dowolny IronPdfEngine od nas. Na przykład, "ironsoftwareofficial/ironpdfengine:2024.1.20" (z DockerHub)
Uprawnienia AWS & Sieciowanie są na twojej własnej odpowiedzialności
Włącz Amazon CloudWatch jest zalecane. (Enable logging)
Kolejność uruchamiania kontenera jest konieczna, jeśli chcesz wdrożyć kontener aplikacji w tej samej definicji zadania.
Uruchom definicję zadania. Możesz uruchomić definicję zadania jako Zadanie lub Usługa. Postępuj zgodnie z tym przewodnikiem o tworzeniu usługi używając konsoli.
Zalecane ustawienia:
Typ uruchomienia: AWS Fargate
Publiczny IP: Włączony dla testu i Wyłączony dla produkcji. Bezpieczeństwo i sieciowanie AWS są na twojej odpowiedzialności.
Ciesz się! IronPdfEngine docker działa w Twoim AWS!
Zwróć uwagę: Sam kontener Docker IronPdfEngine nie obsługuje skalowania poziomego; Została zaprojektowana jako usługa backendowa z pojedynczą instancją. Twoja aplikacja korzystająca z biblioteki IronPDF (z IronPdfEngine lub bez) nadal może skalować się horyzontalnie poprzez wdrożenie wielu instancji aplikacji. Więcej szczegółów można znaleźć w sekcji Ograniczenia IronPdfEngine.
Obraz: ironsoftwareofficial/ironpdfengine:2024.1.20 (z Docker Hub)
Typ systemu operacyjnego: Linux
Rozmiar: Minimum 1 vCPU i 2 GiB pamięci, lub więcej
Port: port TCP 33350
Ciesz się! IronPdfEngine docker działa w Twoich instancjach kontenera Azure!
Zwróć uwagę: Kontener Docker IronPdfEngine nie obsługuje skalowania poziomego; zaprojektowany jako usługa backendowa z pojedynczą instancją. Twoja aplikacja korzystająca z biblioteki IronPDF (z IronPdfEngine lub bez) nadal może skalować się horyzontalnie poprzez wdrożenie wielu instancji aplikacji. Więcej informacji można znaleźć w sekcji Ograniczenia IronPdfEngine.
Uzupełnij "Podstawy", "Szczegóły klastra" i "Szczegóły aplikacji", aby utworzyć usługę Kubernetes.
Po zakończeniu wdrożenia, przejdź do lewego paska bocznego i wybierz Zasoby Kubernetes> Uruchom polecenie. Uruchom następujące polecenie:
kubectl get services
kubectl get services
SHELL
Z informacjami o EXTERNAL-IP i PORT(S), możesz skonfigurować połączenie IronPdfEngine zgodnie z potrzebami.
using IronPdf;using IronPdf.GrpcLayer;IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();configuration.ConnectionType = IronPdfConnectionType.RemoteServer;configuration.Host = "http://48.216.143.233";configuration.Port = 80;IronPdf.Installation.ConnectToIronPdfHost(configuration);ChromePdfRenderer renderer = new ChromePdfRenderer();PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");pdf.SaveAs("output.pdf");
using IronPdf;
using IronPdf.GrpcLayer;
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");
ImportsIronPdfImportsIronPdf.GrpcLayerIronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"Dim configuration As New IronPdfConnectionConfiguration()configuration.ConnectionType = IronPdfConnectionType.RemoteServerconfiguration.Host = "http://48.216.143.233"configuration.Port = 80IronPdf.Installation.ConnectToIronPdfHost(configuration)Dim renderer As New ChromePdfRenderer()Dim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")pdf.SaveAs("output.pdf")
Imports IronPdf
Imports IronPdf.GrpcLayer
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Dim configuration As New IronPdfConnectionConfiguration()
configuration.ConnectionType = IronPdfConnectionType.RemoteServer
configuration.Host = "http://48.216.143.233"
configuration.Port = 80
IronPdf.Installation.ConnectToIronPdfHost(configuration)
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
pdf.SaveAs("output.pdf")
Pobierz obraz ironpdfengine. Ten krok pokaże Ci polecenie do pobrania obrazu ironpdfengine.
Na przykład:
aws ecr get-login-password \ --region us-east-1 | docker login \ --username AWS \ --password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.comCONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15" for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done
aws ecr get-login-password \
--region us-east-1 | docker login \
--username AWS \
--password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com
CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15"
for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done
SHELL
Uruchom kontener ironpdfengine. To polecenie utworzy kontener i uruchomi go w tle z portem 33350.
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
SHELL
Sprawdzenie kondycji dla IronPdfEngine
Sprawdzanie kondycji Twojego kontenera Docker jest kluczowe, aby zapewnić niezawodność i dostępność w środowisku produkcyjnym. Możliwość sprawdzenia kontenera Docker IronPdfEngine pozwala programistom zrestartować usługę, jeśli zawiedzie, oraz skalować zasoby, jeśli wzrośnie popyt razem z monitorowaniem ciągłej aplikacji.
Aby sprawdzić kondycję Twojego IronPdfEngine, możemy wysłać żądanie gRPC do tego samego portu IronPdfEngine (domyślnie będzie to 33350), aby zweryfikować, czy otrzymujemy odpowiedź.
Sprawdzenie kondycji z użyciem gRPC
IronPdfEngine stosuje się do standardowego wzorca sprawdzania kondycji gRPC, wykorzystując następującą strukturę protokołu.
message HealthCheckRequest { string service = 1; // Name of the service to check (e.g., "IronPdfEngine")}
message HealthCheckRequest {
string service = 1; // Name of the service to check (e.g., "IronPdfEngine")
}
Text
Ponieważ sprawdzamy IronPdfEngine, zastępujemy nazwę usługi przez IronPdfEngine.
Oto przykład użycia JavaScript z Postman do wysłania żądania gRPC do lokalnej usługi IronPdfEngine z domyślnym numerem 33350.
Jak można zauważyć w odpowiedzi, odpowiedź statusu jest SERVING, co oznacza, że usługa działa poprawnie. Jeśli kontener nie jest zdrowy, odpowiedź statusu będzie NOT_SERVING.
Sprawdzenie kondycji z ustawieniem Kubernetes
Dla ustawień Kubernetes, możemy użyć poniższego, aby sprawdzić, czy usługa jest zdrowa.
Jak mogę przekonwertować HTML na PDF w języku C# przy użyciu Docker?
Możesz użyć konfiguracji Docker firmy IronPDF do konwersji HTML na PDF w języku C#. W tym celu wdróż IronPdfEngine w kontenerze Docker i użyj metod takich jak RenderHtmlAsPdf.
Jakie są zalety korzystania z IronPdfEngine w Dockerze?
Korzystanie z IronPdfEngine w Dockerze zapewnia wstępnie zainstalowane i niezawodne środowisko, ograniczając problemy z zależnościami i gwarantując dostępność wszystkich niezbędnych komponentów, takich jak pliki binarne Chrome i Pdfium.
Jak skonfigurować IronPdfEngine za pomocą Docker Compose?
Utwórz plik docker-compose.yml i zdefiniuj usługi oraz sieci. Upewnij się, że IronPdfEngine uruchamia się przed aplikacją, używając dyrektywy depends_on.
Jakie kroki są wymagane do wdrożenia IronPdfEngine na AWS ECS?
Aby wdrożyć rozwiązanie w AWS ECS, należy utworzyć klaster ECS, zdefiniować definicję zadania i użyć AWS Fargate do alokacji zasobów. Następnie należy uruchomić zadanie lub usługę, aby uruchomić IronPdfEngine.
Jak mogę pobrać IronPdfEngine z publicznej galerii AWS ECR?
Wejdź do publicznej galerii AWS ECR, znajdź obraz IronPdfEngine i postępuj zgodnie z podanymi poleceniami, aby pobrać i uruchomić kontener.
Czy można korzystać z IronPdfEngine z Azure Marketplace?
Tak, IronPdfEngine jest dostępny w Azure Marketplace. Możesz postępować zgodnie z instrukcjami konfiguracji na stronie Marketplace, aby wdrożyć kontener Docker.
O jakich ograniczeniach należy pamiętać podczas korzystania z IronPdfEngine?
Sam kontener Docker IronPdfEngine nie obsługuje skalowania horyzontalnego, ponieważ został zaprojektowany jako usługa backendowa z jedną instancją. Jednak aplikacje korzystające z biblioteki IronPDF (z IronPdfEngine lub bez) mogą nadal skalować się horyzontalnie poprzez wdrożenie wielu instancji aplikacji. Należy zaplanować wdrożenie, mając na uwadze tę różnicę.
Jak mogę efektywnie wykonywać zadania związane z generowaniem i edycją plików PDF za pomocą Docker?
Wdroż IronPdfEngine w kontenerze Docker, aby efektywnie zarządzać zadaniami związanymi z generowaniem i przetwarzaniem plików PDF, wykorzystując możliwości Docker do obsługi zależności i zapewnienia spójnego środowiska.
Jakie są wymagania dotyczące wdrożenia IronPdfEngine na Azure Container Instances?
Aby wdrożyć rozwiązanie w Azure Container Instances, upewnij się, że posiadasz konto Azure, a następnie pobierz obraz Docker IronPdfEngine w celu wdrożenia.
Are there specific logging configurations available for IronPdfEngine?
Yes, IronPdfEngine supports various logging configurations, including console, file, and custom modes. This flexibility helps in monitoring and debugging, allowing developers to choose the best method for their needs.
Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.