Deployment troubleshooting for Azure Linux App Service
While deploying to Azure Linux App Service, you may encounter with the similar errors like below.
Error while deploying IronPdf Chrome renderer:
'Multiple issues occurred while trying to deploy Chrome
(libatk-1.0.so.0: cannot open shared object file: No such file or directory)
(IronInterop.so: cannot open shared object file: No such file or directory)
(Read-only file system: '/home/site/wwwroot/runtimes')'
The reason causing this issue is due to the lack of necessary deps on the Linux environment. Linux distributions are usually minimal compared to Windows and we need to install the dependencies needed for IronPdf rendering engine.
IronPdf checks them on rendering and try to download and install if it doesn't exist yet.
Deployment Step
After the app service is deployed from visual studio, I go to SSH console.
Under wwwroot directory, execute this command "ldd IronInterop.so" to check if all the necessary deps are found. (On the first time, SSH cannot detect the files under wwwroot directory. Please go back to main directory with "cd ~" and then enter back to wwwroot directory and check with "ls" if the files exist).
You'll see the output accordingly that some deps are not found.
To install them, execute this command:
apt-get update && apt-get install -y libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libasound2 libatspi2.0-0
Please note that the above deps might be different depending on the Linux distribution base you're currently deploying.
To check current Linux OS info, please use "cat /etc/os-release" command. If you're using different Linux distribution, you might need to confirm again with "ldd IronInterop.so" to check which deps are missing.
Once you have the OS details and the missing deps, you can search online or use an AI assistant to identify the correct package names for any dependencies that did not install successfully. (The IronPdf log file can also help indicate which specific libraries are missing.)
My Linux distribution info:
Additional Note: If your Linux is Ubuntu 24.04 (.NET 10 image), please use the following command:
RUN apt update \ && apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2-data libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev
When the installation is finished, I checked with this command "ldd IronInterop.so" to confirm all the deps are installed and can be found.
Pdf Rendering Step:
After that, I tried to render the pdf from the web app, and able to generate successfully within seconds, without the need to install the deps on the rendering process.
You'll see the logs like this. Please note that this is not downloading or installing anything, but just checking with "ldd IronInterop.so" internally, to confirm all the deps are installed.