WEBSITE_RUN_FROM_PACKAGE와 함께 Azure Linux에서 IronPDF
IronPDF를 사용하는 .NET API를 WEBSITE_RUN_FROM_PACKAGE가 활성화된 Azure Linux App Service에 배포할 때, Chrome 렌더러가 배포에 실패하고 애플리케이션이 시작 시 에러를 발생시킵니다.
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')'
WEBSITE_RUN_FROM_PACKAGE가 설정되면, /home/site/wwwroot 디렉토리는 읽기 전용이 됩니다. IronPDF는 기본 Chrome 렌더러 바이너리와 런타임 라이브러리를 시작 시 쓰기 가능한 위치로 추출해야 하므로, 읽기 전용 제한은 배포를 차단합니다. 또한, Azure의 기본 Linux 환경에는 필수 시스템 라이브러리가 사전 설치되어 있지 않을 수 있으며 이는 공유 개체 누락 에러를 발생시킵니다.
해결책
배포 제약에 따라 세 가지 옵션을 사용할 수 있습니다.
옵션 1: SSH를 통해 누락된 종속성 설치
SSH를 통해 App Service에 접근하고 필요한 시스템 라이브러리를 설치하기 위해 다음 명령을 실행하십시오:
apt update
apt install -y libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 \
libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 \
libxkbcommon-x11-0 libxrender1 libfontconfig1 libxshmfence1
apt update
apt install -y libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 \
libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 \
libxkbcommon-x11-0 libxrender1 libfontconfig1 libxshmfence1
이는 일시적인 해결책입니다. 이 방법으로 설치된 패키지는 재시작 후에도 지속되지 않으며, 외부 방화벽 제한이 있는 프로덕션 환경에 적합하지 않습니다. Linux 배포판별로 필요한 패키지의 전체 목록은 Linux 배포 가이드를 참조하십시오.
옵션 2: 맞춤형 Docker 컨테이너 사용 (Linux에 권장)
Ubuntu 또는 Debian 기반의 맞춤형 Docker 이미지를 빌드하고, apt와 함께 필요한 시스템 패키지를 설치하며, IronPdf 및 IronPdf.Native.Chrome.Linux NuGet 패키지를 프로젝트 파일에 포함하십시오. 이 접근 방식은 이미지 빌드 시점에 렌더러에 쓰기 가능한 파일 시스템과 사전 설치된 종속성을 제공합니다.
해당 .csproj에 일치하는 NuGet 패키지를 추가하십시오:
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
IronPdf.Native.Chrome.Linux의 버전이 IronPdf 패키지 버전과 일치하는지 확인하십시오. 프로젝트에 네이티브 패키지를 포함하면 IronPDF가 런타임 다운로드를 시도하지 않게 되어, 읽기 전용 또는 네트워크 제한된 환경에서 실패할 가능성을 방지합니다.
IronPDF Docker 가이드에서 전체 Dockerfile 예제를 참조하십시오.
옵션 3: Windows App Service로 마이그레이션
Windows App Services는 WEBSITE_RUN_FROM_PACKAGE에 대해 동일한 파일 시스템 권한 제한이 없습니다. IronPDF의 Windows 런타임 라이브러리는 네이티브로 지원되며 문제없이 추출할 수 있습니다. Windows App Service로 마이그레이션하면 근본 원인이 완전히 제거됩니다.

