Azure Linux App Service 배포 문제 해결
IronPDF를 Azure Linux App Service에 배포할 때, 시스템 라이브러리 누락으로 인해 애플리케이션이 PDF를 렌더링하지 못할 수 있습니다. 이는 Linux 환경이 Windows보다 사전 설치된 패키지가 적고, IronPDF 렌더링 엔진이 동작하기 위해 추가적인 공유 라이브러리가 필요하기 때문에 발생합니다.
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')
이 오류는 IronInterop.so에 필요한 하나 이상의 공유 라이브러리가 Linux 환경에 없다는 것을 의미합니다. 앱 서비스의 SSH 콘솔에서 ldd IronInterop.so을 실행하면 어떤 라이브러리가 누락되었는지를 정확히 확인할 수 있습니다. 런타임 폴더에 대한 읽기 전용 파일 시스템 메시지는 같은 누락 종속성 조건의 별도 증상입니다.
해결책
1단계: 누락된 종속성 식별하기
- Visual Studio에서 일반적으로 앱 서비스를 배포합니다.
- Azure Linux App Service의 SSH 콘솔을 엽니다.
- wwwroot 디렉터리로 이동합니다:
cd /home/site/wwwroot
- 원주 바이너리에 대해
ldd을 실행하여 해결되지 않은 종속성을 나열합니다:
ldd IronInterop.so
- 어떤 패키지 이름이 적용되는지 확인하기 위해 OS 버전을 확인합니다:
cat /etc/os-release
2단계: 누락된 라이브러리 설치하기
대부분의 Linux 배포판(데비안/우분투 기반 이미지)의 경우, 다음을 사용하여 필요한 패키지를 설치합니다:
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
.NET 10과 함께 사용되는 Ubuntu 24.04 이미지의 경우, 일부 패키지 이름이 변경되었으므로 대신 다음 Dockerfile 명령어를 사용합니다:
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 libasound2t64 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev
3단계: 모든 종속성이 해결되었는지 확인하기
남은 해결되지 않은 항목이 없는지 확인하기 위해 ldd을 다시 실행합니다:
ldd IronInterop.so
모든 항목은 not found이 아닌 해결된 경로를 표시해야 합니다. 모든 종속성이 자리잡으면, 웹 애플리케이션을 통한 PDF 렌더링이 정상적으로 작동합니다. Linux 배포판에 걸친 필요한 패키지의 전체 목록은 Linux 배포 가이드를 참조하십시오.

