-
-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to get net-vips to work in Windows container #61
Comments
Forgot to add, using NetVips v1.20 and NetVips.Native v8.9.1 from Nuget. |
Try place all native dlls along with your app dll(it's default behavior when publish). |
Tried that, tried putting it into path, it's not complaining that it can't find the file (which is 0X8007007E, The specified module cannot be found), it's unable to load the procedure itself, I have a feeling this may be because nanoserver does not contain GDI, and vips has dependency on GDI. |
Running Depwalker, one of the ImageMagick dlls reference GDI, which is unavailable in Nanoserver. I've build an Asp Net core container against Windows Server Core and that appears to be working - surgicalcoder/windowsservercore-netcore on Docker hub. Closing this as it's not a Net Vips issue. |
Glad it's resolved!
Note that only the |
@kleisauke I don't think that's entirely accurate from what I've seen - libvips-42.dll has a direct dependency on GDI32.dll according to dependency walker: |
- Update GLib to 2.63.5. - Update librsvg to 2.47.3. - Update ImageMagick to 6.9.10-92. - Update libheif to 1.6.2. - Update OpenEXR to 2.4.1. - Do not link Cairo against -lgdi32 and -lmsimg32 (see kleisauke/net-vips#61). MXE Updates: - Update SQLite to 3.31.1. - Update Poppler to 0.85.0.
Ah, you're right. Looks like Cairo is the only one that depends on Fixed with libvips/build-win64-mxe@acc156c, I now see: This Dockerfile seems to be working properly now: FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /source
COPY *.csproj .
COPY local-packages local-packages/
RUN dotnet restore -r win-x64 -v n
COPY . .
RUN dotnet publish -c release -o /app -r win-x64 --self-contained false --no-restore
FROM mcr.microsoft.com/dotnet/core/runtime:3.1-nanoserver-1909
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "NetVips.TestProgram.dll"] Thanks for reporting this! The fix will be included in the forthcoming NetVips.Native release. |
@kleisauke Do we have a date for when NetVips.Native will be released with those fixes? Am keen to try it out (and shrink the size of my containers while I'm at it) |
I can't give any dates, unfortunately. I was waiting for libvips 8.9.2, but it hasn't been released yet. In the meantime, you could try testing these binaries: I'm reopening this issue to keep track of it. |
NetVips.Native v8.9.2 is now available. |
Trying to get netvips working in a Windows container (image is mcr.microsoft.com/dotnet/core/aspnet:3.1.1-nanoserver-1809),
No matter what I try, it refuses to load the DLLs with the following error:
System.DllNotFoundException: Unable to load DLL 'libvips-42.dll' or one of its dependencies: The specified procedure could not be found. (0x8007007F)
at NetVips.Internal.VipsSourceCustom.New()
at NetVips.SourceCustom..ctor()
at NetVips.SourceStream..ctor(Stream stream)
I've tried including the NetVips.native package, I've also tried copying the entirety of Vips package to a path (c:\vips) and adding that into the PATH, with no luck.
Funnily enough, with just NetVips.native on linux (container is mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim) it works fine.
The text was updated successfully, but these errors were encountered: