Linux'ta IronPDF Çalıştırma: Kurulum Kılavuzu
IronPDF for Linux, yaklaşık 280MB (hem IronPDF kodu hem de tüm Chrome tarayıcısı dahil). Docker görüntüleri yaklaşık 500MB civarındadır.
Chrome, Linux dağıtımınıza bağlı olarak değişen bazı temel paketlere de ihtiyaç duyar. Linux dağıtımlarının çoğunda, bu paketler zaten yüklüdür, zira Linux'ta çeşitli uygulama ve kütüphaneler tarafından kullanılırlar.
Ancak, basit bir dağıtım kullanıyorsanız, Linux paketlerini yüklmeniz gerekecektir, böylece Chrome Linux'ta çalışır duruma gelebilir.
Not: Hata ayıklamayı kolaylaştırmak için şunları ayarlayabilirsiniz:
// Enable detailed debugging for IronPdf
IronPdf.Logging.Logger.EnableDebugging = true;
// Specify the log file path
IronPdf.Logging.Logger.LogFilePath = "Default.log";
// Set the logging mode to capture all log data
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
// Enable detailed debugging for IronPdf
IronPdf.Logging.Logger.EnableDebugging = true;
// Specify the log file path
IronPdf.Logging.Logger.LogFilePath = "Default.log";
// Set the logging mode to capture all log data
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
' Enable detailed debugging for IronPdf
IronPdf.Logging.Logger.EnableDebugging = True
' Specify the log file path
IronPdf.Logging.Logger.LogFilePath = "Default.log"
' Set the logging mode to capture all log data
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All
Daha Küçük Docker Görüntüsü Nasıl Yapılır
1. Çalışma Zamanında Paketlerin Yüklenmesi
Boyutu azaltmanın bir yolu, apt-get komutlarını docker imajı oluşturulurken değil, çalışma zamanında çalıştırmaktır:
apt-getkomutlarını Dockerfile'nızdan kaldırın.- IronPDF'i başlatmadan veya bir belge oluşturmadan önce
Installation.LinuxAndDockerDependenciesAutoConfig = true;ayarlayın. - Uygulamanızın
apt-getkomutlarını çalıştırmak için yeterli izinlerle çalıştırıldığından emin olun.
Not: İlk başlatma işleminiz daha yavaş olacaktır çünkü ilk belgenizi oluşturmadan önce apt-get komutlarının tamamlanması gerekmektedir, ve bu işlem imajı yeniden dağıtmanız gerektiğinde her seferinde tekrarlanacaktır.
Not: Başarılı paket yüklemesini gösteren konsol/kayıt girdilerini görmelisiniz.
Executing command 'apt install -y libnss3' in '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libnspr4
The following NEW packages will be installed:
libnspr4 libnss3
0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.
Executing command 'apt install -y libnss3' in '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libnspr4
The following NEW packages will be installed:
libnspr4 libnss3
0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.
2. IronPdf.Slim Kullanımı
Yalnızca IronPdf.dll'i dahil etmeyi ve gerekli dosyaları çalışma zamanında indirmeyi seçebilirsiniz.
- Projenizden IronPdf.Linux (ve herhangi bir başka IronPDF) NuGet paketi(leri)ni kaldırın ve IronPdf.Slim ekleyin.
- IronPDF'i başlatmadan veya bir belge oluşturmadan önce
Installation.AutomaticallyDownloadNativeBinaries = true;ayarlayın. - Dockerfile'nızın uygulamanızın çalışma dizininin tamamına okuma ve yazma izinleri verdiğinden emin olun (örneğin,
RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocessöğesiniRUN chmod +rwx /app/öğesine değiştirin).
Not: İlk başlatmanız daha yavaş olacaktır çünkü NuGet paketi indirilip ilk belgenizi işlemeye başlamadan önce çıkarılır ve bu işlem görünüşü her yeniden dağıttığınızda tekrarlanacaktır.
Not: Başarılı bir indirme ve çıkarma işlemini gösteren konsol/kayıt girdilerini görmelisiniz.
Downloading NuGet package from 'https://www.nuget.org/api/v2/package/IronPdf.Native.Chrome.Linux/2023.1.11387'
Extracting package contents '/app/bin/Debug/netcoreapp3.1/IronPdf.Native.Chrome.Linux.2023.1.11387.nupkg/runtimes/linux-x64/native' to '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
Successfully deployed NuGet package 'IronPdf.Native.Chrome.Linux' to '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
Successfully located 'IronInterop' at '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
Downloading NuGet package from 'https://www.nuget.org/api/v2/package/IronPdf.Native.Chrome.Linux/2023.1.11387'
Extracting package contents '/app/bin/Debug/netcoreapp3.1/IronPdf.Native.Chrome.Linux.2023.1.11387.nupkg/runtimes/linux-x64/native' to '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
Successfully deployed NuGet package 'IronPdf.Native.Chrome.Linux' to '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
Successfully located 'IronInterop' at '/app/bin/Debug/netcoreapp3.1/runtimes/linux-x64/native'
3. Sonuç
Özetle, ilk konteynır boyutunu küçültmek için:
- IronPdf.Slim NuGet paketi kullanın.
- IronPDF'yi yapılandırın:
// Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.AutomaticallyDownloadNativeBinaries = true;
// Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.AutomaticallyDownloadNativeBinaries = true;
' Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = True
Installation.AutomaticallyDownloadNativeBinaries = True
- Uygulama dizininin yazılabilir/çalıştırılabilir olduğunu kontrol edin:
RUN chmod +rwx /app/
Hem 1. hem de 2. maddeleri kullanan çok zayıf bir Docker imajı, ~500MB'tan ~200MB'a küçülmelidir.
Olası olduğunda, daha iyi performans almak için zayıf bir dağıtım tercih ETMEYİN.
Bazı konteynerize edilmiş ve bulut ortamları kalıcı değildir ve bu nedenle bazen bağımlılıkları yeniden indirmeleri veya apt-get komutlarını tekrar çalıştırmaları gerekebilir ki bu da birkaç dakikaya kadar zaman alabilir!
Ancak, bazı geliştiricilerin dağıtımları için katı boyut gereksinimlerine tabi olabileceğini anlıyoruz.

