我应该安装哪些库以便在基于Alpine的图像中的ASP NET Core应用程序中使用System.Drawing.Common。>

问题描述 投票:1回答:1

我在dotnet core 3.0应用程序中具有以下代码:

...
// This url returns image (Content-Type: Blob)
var imageUrl = "https://barcode.tec-it.com/barcode.ashx?data=ABC-abc-1234&code=Code128&dpi=96";
HttpClient client = HttpClientFactory.Create();
using (var input = await client.GetStreamAsync(imageUrl))
{
    var bitmap = new Bitmap(input); // this is dangerous code
}
...

我想在基于alpine3.9(mcr.microsoft.com/dotnet/core/aspnet:3.0.0-alpine3.9)的docker容器中运行此代码我知道我应该在docker容器中安装其他库以使用System.Drawing.Common:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0.0-alpine3.9
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
    && apk update \
    && apk add \
        libgdiplus

但是无论如何-它失败并显示以下堆栈跟踪:

System.ArgumentException: Parameter is not valid.
   at System.Drawing.Image.InitializeFromStream(Stream stream)
   at System.Drawing.Bitmap..ctor(Stream stream)

我知道这段代码在基于debian的容器中工作正常,如下所示:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    libgdiplus

我试图在高山容器内安装libgdiplus-devfontconfigttf-dejavu库,但它不起作用

因此,主要问题-是与网络相关的库还是dotnet内的错误?如果是第一个-我应该安装哪些库才能正常工作?

我在dotnet core 3.0应用程序中具有以下代码:... //此url返回图像(内容类型:Blob)var imageUrl =“ https://barcode.tec-it.com/barcode.ashx?data = ABC-abc-1234&code = Code128&...

c# .net docker .net-core alpine
1个回答
0
投票

TL; DR

© www.soinside.com 2019 - 2024. All rights reserved.