dotnetcore/NPOI

NPOI and X-Server

npfernandeztheillet opened this issue · 6 comments

Hi How are you? I hope you are doing well.
I'm trying to use this library in Linux server without X-Server. When I tried to use the method AutoSizeColumns I got this error:
System.NotSupportedException: Could not open display (X-Server required. Check your DISPLAY environment variable)
at System.Drawing.Graphics.FromHwnd(IntPtr hwnd)
at NPOI.SS.Util.SheetUtil.getDefaultCharWidth(IWorkbook wb)
at NPOI.SS.Util.SheetUtil.GetColumnWidth(ISheet sheet, Int32 column, Boolean useMergedCells)

Any suggestions?
Thanks!

+1. facing the same issue..

Error:
System.NotSupportedException: Could not open display (X-Server required. Check your DISPLAY environment variable)
at System.Drawing.Graphics.FromHwnd(IntPtr hwnd)
at NPOI.SS.Util.SheetUtil.getDefaultCharWidth(IWorkbook wb)
at NPOI.SS.Util.SheetUtil.GetColumnWidth(ISheet sheet, Int32 column, Boolean useMergedCells)
at NPOI.XSSF.UserModel.XSSFSheet.AutoSizeColumn(Int32 column, Boolean useMergedCells)
at NPOI.XSSF.UserModel.XSSFSheet.AutoSizeColumn(Int32 column)
at App.Excel.Exporting.ExcelBuilder`1.AutoSizeColumns(ISheet sheet)

Environment:
.net core 3.0
docker container (alpine)

Docker File entry:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-alpine as services
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk --update add libgdiplus libx11-dev fontconfig ttf-dejavu --update-cache

Please note that this was working fine in .net core 2.2:
FROM microsoft/dotnet:2.2-aspnetcore-runtime-alpine as services
RUN apk add libgdiplus-dev fontconfig ttf-dejavu libc-dev --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted

hey everyone:
very unfortunate, facing the same issue..
i recomplie and reinstall in libgdiplus .but is dos`t work...

please help me :x
thanks for reading ~

Environment:
.net core 2.2
dotnetCore.NPOI version : 1.22
libgdiplus is yum installed .version:
image

Error:   

System.NotSupportedException: Could not open display (X-Server required. Check your DISPLAY environment variable)
at System.Drawing.Graphics.FromHwnd(IntPtr hwnd)
at NPOI.SS.Util.SheetUtil.getDefaultCharWidth(IWorkbook wb)
at NPOI.SS.Util.SheetUtil.GetColumnWidth(ISheet sheet, Int32 column, Boolean useMergedCells)
at NPOI.XSSF.UserModel.XSSFSheet.AutoSizeColumn(Int32 column, Boolean useMergedCells)
System.NotSupportedException: Could not open display (X-Server required. Check your DISPLAY environment variable)
at System.Drawing.Graphics.FromHwnd(IntPtr hwnd)
at NPOI.SS.Util.SheetUtil.getDefaultCharWidth(IWorkbook wb)
at NPOI.SS.Util.SheetUtil.GetColumnWidth(ISheet sheet, Int32 column, Boolean useMergedCells)
at NPOI.XSSF.UserModel.XSSFSheet.AutoSizeColumn(Int32 column, Boolean useMergedCells)

 LD_DEBUG:
 21731:     find library=libdl.so [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libdl.so
 21731:
 21731:     /lib64/libdl.so.2: error: symbol lookup error: undefined symbol: DllMain (fatal)
 21731:     find library=libgdiplus.so [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/libgdiplus.so
 21731:       trying file=/lib64/libgdiplus.so
 21731:
 21731:     find library=libglib-2.0.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libglib-2.0.so.0
 21731:
 21731:     find library=libcairo.so.2 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libcairo.so.2
 21731:
 21731:     find library=libfreetype.so.6 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libfreetype.so.6
 21731:
 21731:     find library=libXrender.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libXrender.so.1
 21731:
 21731:     find library=libX11.so.6 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libX11.so.6
 21731:
 21731:     find library=libtiff.so.5 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libtiff.so.5
 21731:
 21731:     find library=libjpeg.so.62 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libjpeg.so.62
 21731:
 21731:     find library=libgif.so.4 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libgif.so.4
 21731:
 21731:     find library=libpng15.so.15 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libpng15.so.15
 21731:
 21731:     find library=libexif.so.12 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libexif.so.12
 21731:
 21731:     find library=libfontconfig.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libfontconfig.so.1
 21731:
 21731:     find library=libpixman-1.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libpixman-1.so.0
 21731:
 21731:     find library=libEGL.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libEGL.so.1
 21731:
 21731:     find library=libxcb-shm.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-shm.so.0
 21731:
 21731:     find library=libxcb.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb.so.1
 21731:
 21731:     find library=libxcb-render.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-render.so.0
 21731:
 21731:     find library=libXext.so.6 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libXext.so.6
 21731:
 21731:     find library=libGL.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libGL.so.1
 21731:
 21731:     find library=libbz2.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libbz2.so.1
 21731:
 21731:     find library=libjbig.so.2.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libjbig.so.2.0
 21731:
 21731:     find library=libSM.so.6 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libSM.so.6
 21731:
 21731:     find library=libICE.so.6 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libICE.so.6
 21731:
 21731:     find library=libexpat.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libexpat.so.1
 21731:
 21731:     find library=libuuid.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libuuid.so.1
 21731:
 21731:     find library=libxcb-dri2.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-dri2.so.0
 21731:
 21731:     find library=libX11-xcb.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libX11-xcb.so.1
 21731:
 21731:     find library=libxcb-dri3.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-dri3.so.0
 21731:
 21731:     find library=libxcb-xfixes.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-xfixes.so.0
 21731:
 21731:     find library=libxcb-present.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-present.so.0
 21731:
 21731:     find library=libxcb-sync.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-sync.so.1
 21731:
 21731:     find library=libxshmfence.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxshmfence.so.1
 21731:
 21731:     find library=libgbm.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libgbm.so.1
 21731:
 21731:     find library=libwayland-client.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libwayland-client.so.0
 21731:
 21731:     find library=libwayland-server.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libwayland-server.so.0
 21731:
 21731:     find library=libdrm.so.2 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libdrm.so.2
 21731:
 21731:     find library=libXau.so.6 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libXau.so.6
 21731:
 21731:     find library=libglapi.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libglapi.so.0
 21731:
 21731:     find library=libXdamage.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libXdamage.so.1
 21731:
 21731:     find library=libXfixes.so.3 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libXfixes.so.3
 21731:
 21731:     find library=libxcb-glx.so.0 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libxcb-glx.so.0
 21731:
 21731:     find library=libXxf86vm.so.1 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libXxf86vm.so.1
 21731:
 21731:     find library=libffi.so.6 [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libffi.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libffi.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libXau.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libxcb.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libX11.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libXext.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libXxf86vm.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-glx.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libXfixes.so.3
 21731:
 21731:
 21731:     calling init: /lib64/libXdamage.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libglapi.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libdrm.so.2
 21731:
 21731:
 21731:     calling init: /lib64/libwayland-server.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libwayland-client.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libexpat.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libgbm.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libxshmfence.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-sync.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-present.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-xfixes.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-dri3.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libX11-xcb.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-dri2.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libuuid.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libICE.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libSM.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libjbig.so.2.0
 21731:
 21731:
 21731:     calling init: /lib64/libbz2.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libGL.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-render.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libxcb-shm.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libEGL.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libpixman-1.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libpng15.so.15
 21731:
 21731:
 21731:     calling init: /lib64/libfreetype.so.6
 21731:
 21731:
 21731:     calling init: /lib64/libfontconfig.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libexif.so.12
 21731:
 21731:
 21731:     calling init: /lib64/libgif.so.4
 21731:
 21731:
 21731:     calling init: /lib64/libjpeg.so.62
 21731:
 21731:
 21731:     calling init: /lib64/libtiff.so.5
 21731:
 21731:
 21731:     calling init: /lib64/libXrender.so.1
 21731:
 21731:
 21731:     calling init: /lib64/libcairo.so.2
 21731:
 21731:
 21731:     calling init: /lib64/libglib-2.0.so.0
 21731:
 21731:
 21731:     calling init: /lib64/libgdiplus.so
 21731:
 21731:     find librarlibX11.so y=[0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:       trying file=/lib64/libX11.so
 21731:
 21731:     /lib64/libX11.so.6: error: symbol lookup error: undefined symbol: DllMain (fatal)
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     /usr/share/dotnet/shared/Microsoft.NETCore.App/2.2.1/libcoreclr.so: error: symbol lookup error: undefined symbol: PAL_LocalFree (fatal)
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:
 21731:     find library=Microsoft.DiaSymReader.Native.amd64.dll [0]; searching
 21731:      search cache=/etc/ld.so.cache
 21731:      search path=/lib64/tls:/lib64:/usr/lib64/tls:/usr/lib64                (system search path)
 21731:       trying file=/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/lib64/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/tls/Microsoft.DiaSymReader.Native.amd64.dll
 21731:       trying file=/usr/lib64/Microsoft.DiaSymReader.Native.amd64.dll

Hi, thanks to these SO posts I was able to get it working again. Maybe this helps someone else too. Thanks for NPOI!

Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
# NPOI needs Libs for System.Drawing and an running X-Server (xvfb)
RUN apt-get update && apt-get install -y --allow-unauthenticated libgdiplus libc6-dev libx11-dev xvfb && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
ENV DISPLAY :10
COPY xvfb.init /etc/init.d/xvfb
# Removes any windows line endings because linux can`t start the service in this case
RUN sed -i -e 's/\r//g' /etc/init.d/xvfb
RUN chmod +x /etc/init.d/xvfb
RUN update-rc.d xvfb defaults
# In the end we need to start the xserver and our API, so run.sh starts them in the right order
ADD run.sh /run.sh
RUN chmod a+x /run.sh
COPY bin/Debug/netcoreapp3.0/publish/ app/
CMD /run.sh

xvfb.init

#!/bin/bash
#
# /etc/rc.d/init.d/xvfbd
#
# chkconfig: 345 95 28
# description: Starts/Stops X Virtual Framebuffer server
# processname: Xvfb
#

[ "${NETWORKING}" = "no" ] && exit 0

PROG="/usr/bin/Xvfb"
PROG_OPTIONS=":10 -ac"
PROG_OUTPUT="/tmp/Xvfb.out"

case "$1" in
    start)
        echo -n "Starting : X Virtual Frame Buffer "
        $PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 &
        disown -ar
        ;;
    stop)
        echo -n "Shutting down : X Virtual Frame Buffer"
        killproc $PROG
        RETVAL=$?
        [ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb/var/run/Xvfb.pid
        echo
        ;;
    restart|reload)
        $0 stop
        $0 start
        RETVAL=$?
        ;;
    status)
        status Xvfb
        RETVAL=$?
        ;;
    *)
     echo $"Usage: $0 (start|stop|restart|reload|status)"
     exit 1
esac

exit $RETVAL

run.sh

service xvfb start;
dotnet app/mydockerapp.dll

Hi, thanks to these SO posts I was able to get it working again. Maybe this helps someone else too. Thanks for NPOI!

Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
# NPOI needs Libs for System.Drawing and an running X-Server (xvfb)
RUN apt-get update && apt-get install -y --allow-unauthenticated libgdiplus libc6-dev libx11-dev xvfb && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
ENV DISPLAY :10
COPY xvfb.init /etc/init.d/xvfb
# Removes any windows line endings because linux can`t start the service in this case
RUN sed -i -e 's/\r//g' /etc/init.d/xvfb
RUN chmod +x /etc/init.d/xvfb
RUN update-rc.d xvfb defaults
# In the end we need to start the xserver and our API, so run.sh starts them in the right order
ADD run.sh /run.sh
RUN chmod a+x /run.sh
COPY bin/Debug/netcoreapp3.0/publish/ app/
CMD /run.sh

xvfb.init

#!/bin/bash
#
# /etc/rc.d/init.d/xvfbd
#
# chkconfig: 345 95 28
# description: Starts/Stops X Virtual Framebuffer server
# processname: Xvfb
#

[ "${NETWORKING}" = "no" ] && exit 0

PROG="/usr/bin/Xvfb"
PROG_OPTIONS=":10 -ac"
PROG_OUTPUT="/tmp/Xvfb.out"

case "$1" in
    start)
        echo -n "Starting : X Virtual Frame Buffer "
        $PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 &
        disown -ar
        ;;
    stop)
        echo -n "Shutting down : X Virtual Frame Buffer"
        killproc $PROG
        RETVAL=$?
        [ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb/var/run/Xvfb.pid
        echo
        ;;
    restart|reload)
        $0 stop
        $0 start
        RETVAL=$?
        ;;
    status)
        status Xvfb
        RETVAL=$?
        ;;
    *)
     echo $"Usage: $0 (start|stop|restart|reload|status)"
     exit 1
esac

exit $RETVAL

run.sh

service xvfb start;
dotnet app/mydockerapp.dll

thank u ~
after the Xvfb was installed ,it working !

daoye commented

@florianwachs Thanks. It's working for me.

I am working with asp.net 2.2 and it didn't work for me