gpt4 book ai didi

docker - 在 ASP.NET Core 的 Linux 容器中安装字体

转载 作者:行者123 更新时间:2023-12-02 19:00:25 25 4
gpt4 key购买 nike

在 Visual Studio 中,我创建了一个默认的 ASP.NET Core Web 应用程序,并启用了 Docker 支持。
它使用默认 Microsoft Offical image用于 Linux 容器。

这是我的 Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["WebApplication1.csproj", ""]
RUN dotnet restore "./WebApplication1.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

我想在其上安装 Microsoft Windows 字体,我尝试了以下操作但它不起作用:
RUN apt install ttf-mscorefonts-installer

如何在此容器上安装字体?

最佳答案

知道了。修改 Dockerfile 的开头,如下所示:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

#Add these two lines
RUN sed -i'.bak' 's/$/ contrib/' /etc/apt/sources.list
RUN apt-get update; apt-get install -y ttf-mscorefonts-installer fontconfig

WORKDIR /app
EXPOSE 80
[...]
第一行更新 Linux 操作系统中的默认/etc/apt/sources.list 文件以包含“contrib”存档区域(这是 ttf-mscorefonts-installer 所在的位置)。这确保 apt-get 可以找到它并在第二行中正常安装它(以及你也需要的 fontconfig 。)
备案, this page建议使用“fonts-liberation”包而不是 ttf-mscorefonts-installer,你也可以在 Dockerfile 的开头使用两个不同的行,如下所示:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

#Add these two lines for fonts-liberation instead
RUN apt-get update; apt-get install -y fontconfig fonts-liberation
RUN fc-cache -f -v

WORKDIR /app
EXPOSE 80

[...]

关于docker - 在 ASP.NET Core 的 Linux 容器中安装字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60934639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com