# Executando o IronPDF no Linux: Guia de Configuração
IronPDF para Linux tem cerca de 280MB (incluindo tanto o código do IronPDF quanto o navegador Chrome inteiro). As imagens do Docker têm cerca de 500 MB.
O Chrome também requer alguns pacotes básicos que variam de acordo com a sua distribuição Linux. A maioria das distribuições Linux já possui esses pacotes instalados, pois eles são utilizados por diversos aplicativos e bibliotecas no Linux.
No entanto, se você estiver usando uma distribuição Linux básica, precisará instalar os pacotes Linux necessários para executar o Chrome no Linux.
Nota: Para facilitar a depuração, você pode definir estas opções:
```csharp
// 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;
```
## Como criar uma imagem Docker menor
### 1. Instalando pacotes em tempo de execução
Uma maneira de reduzir o tamanho é executar comandos `apt-get` em tempo de execução, em vez de ao criar a imagem do docker:
1. Remova comandos `apt-get` de seu Dockerfile.
2. Defina `Installation.LinuxAndDockerDependenciesAutoConfig = true;` antes de inicializar o IronPDF ou renderizar um documento.
3. Certifique-se de que seu aplicativo seja executado com permissões suficientes para executar comandos `apt-get`.
Nota: Sua primeira inicialização será mais lenta, pois os comandos `apt-get` devem ser concluídos antes de renderizar seu primeiro documento, e esse processo se repetirá sempre que você precisar reimplantar a imagem.
Observação: você deverá ver entradas no console/log indicando instalações de pacotes bem-sucedidas:
```shell
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. Use o IronPdf.Slim
Você também pode optar por incluir _apenas_ o arquivo IronPDF e baixar os arquivos necessários em tempo de execução.
1. Remova o IronPdf.Linux (e qualquer outro IronPDF) pacote(s) NuGet do seu projeto e adicione o IronPdf.Slim.
2. Defina `Installation.AutomaticallyDownloadNativeBinaries = true;` antes de inicializar o IronPDF ou renderizar um documento.
3. Certifique-se de que seu Dockerfile conceda permissões de leitura e gravação para todo o diretório de trabalho do seu aplicativo (por exemplo, altere `RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess` para `RUN chmod +rwx /app/`).
Observação: Sua primeira inicialização será mais lenta, pois o pacote NuGet será baixado e extraído antes da renderização do primeiro documento, e esse processo se repetirá sempre que você precisar reimplantar a imagem.
Observação: você deverá ver entradas no console/log indicando que o download e a extração foram bem-sucedidos:
```shell
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. Conclusão
Em resumo, para reduzir o _tamanho inicial do contêiner:_
- Utilize o pacote NuGet IronPDF .Slim.
- Configure o IronPDF:
```csharp
// Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.AutomaticallyDownloadNativeBinaries = true;
```
- Certifique-se de que o diretório do aplicativo tenha permissão de escrita/execução:
```dockerfile
RUN chmod +rwx /app/
```
Uma imagem Docker muito enxuta, utilizando os pontos 1 e 2, deve reduzir o tamanho de aproximadamente 500 MB para aproximadamente 200 MB.
Se possível, você obterá o melhor desempenho se NÃO optar por uma implantação compacta.
Alguns ambientes contêinerizados e na nuvem não são persistentes e, portanto, podem ter que rebaixar dependências ou executar os comandos `apt-get` novamente, levando alguns minutos!
No entanto, compreendemos que alguns desenvolvedores podem estar sujeitos a requisitos de tamanho rigorosos para suas implantações.
IronPDF para Linux tem cerca de 280MB (incluindo tanto o código do IronPDF quanto o navegador Chrome inteiro). As imagens do Docker têm cerca de 500 MB.
O Chrome também requer alguns pacotes básicos que variam de acordo com a sua distribuição Linux. A maioria das distribuições Linux já possui esses pacotes instalados, pois eles são utilizados por diversos aplicativos e bibliotecas no Linux.
No entanto, se você estiver usando uma distribuição Linux básica, precisará instalar os pacotes Linux necessários para executar o Chrome no Linux.
Nota: Para facilitar a depuração, você pode definir estas opções:
// Specify the log file pathIronPdf.Logging.Logger.LogFilePath = "Default.log";// Set the logging mode to capture all log dataIronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
// 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;
' Specify the log file pathIronPdf.Logging.Logger.LogFilePath = "Default.log"' Set the logging mode to capture all log dataIronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All
' 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
Como criar uma imagem Docker menor
1. Instalando pacotes em tempo de execução
Uma maneira de reduzir o tamanho é executar comandos apt-get em tempo de execução, em vez de ao criar a imagem do docker:
Remova comandos apt-get de seu Dockerfile.
Defina Installation.LinuxAndDockerDependenciesAutoConfig = true; antes de inicializar o IronPDF ou renderizar um documento.
Certifique-se de que seu aplicativo seja executado com permissões suficientes para executar comandos apt-get.
Nota: Sua primeira inicialização será mais lenta, pois os comandos apt-get devem ser concluídos antes de renderizar seu primeiro documento, e esse processo se repetirá sempre que você precisar reimplantar a imagem.
Observação: você deverá ver entradas no console/log indicando instalações de pacotes bem-sucedidas:
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: libnspr4The following NEW packages will be installed: libnspr4 libnss30 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.
SHELL
2. Use o IronPdf.Slim
Você também pode optar por incluir apenas o arquivo IronPDF e baixar os arquivos necessários em tempo de execução.
Remova o IronPdf.Linux (e qualquer outro IronPDF) pacote(s) NuGet do seu projeto e adicione o IronPdf.Slim.
Defina Installation.AutomaticallyDownloadNativeBinaries = true; antes de inicializar o IronPDF ou renderizar um documento.
Certifique-se de que seu Dockerfile conceda permissões de leitura e gravação para todo o diretório de trabalho do seu aplicativo (por exemplo, altere RUN chmod +rwx /app/runtimes/linux-x64/native/IronCefSubprocess para RUN chmod +rwx /app/).
Observação: Sua primeira inicialização será mais lenta, pois o pacote NuGet será baixado e extraído antes da renderização do primeiro documento, e esse processo se repetirá sempre que você precisar reimplantar a imagem.
Observação: você deverá ver entradas no console/log indicando que o download e a extração foram bem-sucedidos:
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'
SHELL
3. Conclusão
Em resumo, para reduzir o tamanho inicial do contêiner:
Utilize o pacote NuGet IronPDF .Slim.
Configure o IronPDF:
// Set installation options for Linux and Docker environmentsInstallation.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 environmentsInstallation.LinuxAndDockerDependenciesAutoConfig = TrueInstallation.AutomaticallyDownloadNativeBinaries = True
' Set installation options for Linux and Docker environments
Installation.LinuxAndDockerDependenciesAutoConfig = True
Installation.AutomaticallyDownloadNativeBinaries = True
Certifique-se de que o diretório do aplicativo tenha permissão de escrita/execução:
RUN chmod +rwx /app/
RUN chmod +rwx /app/
Text
Uma imagem Docker muito enxuta, utilizando os pontos 1 e 2, deve reduzir o tamanho de aproximadamente 500 MB para aproximadamente 200 MB.
Se possível, você obterá o melhor desempenho se NÃO optar por uma implantação compacta.
Alguns ambientes contêinerizados e na nuvem não são persistentes e, portanto, podem ter que rebaixar dependências ou executar os comandos apt-get novamente, levando alguns minutos!
No entanto, compreendemos que alguns desenvolvedores podem estar sujeitos a requisitos de tamanho rigorosos para suas implantações.
Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.