gpt4 book ai didi

c# - 我可以进一步减少对由docker容器上的asp.net Web API应用程序运行的docker镜像的依赖性

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

我跟随https://github.com/Microsoft/dotnet-framework-docker链接在.net 4.6.1框架的顶部构建了示例ASP.NET Web API应用程序。

这是我的docker文件:

FROM microsoft/dotnet-framework:4.7.2-sdk AS build
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.sln .
COPY TestWebAPI/*.csproj ./TestWebAPI/
COPY TestWebAPI/*.config ./TestWebAPI/
RUN nuget restore

# copy everything else and build app
COPY TestWebAPI/. ./TestWebAPI/
WORKDIR /app/TestWebAPI
RUN msbuild /p:Configuration=Release


FROM microsoft/aspnet:4.7.2 AS runtime
WORKDIR /inetpub/wwwroot
COPY --from=build /app/TestWebAPI/. ./

要运行脚本,我执行以下命令:
docker image build --tag testwebapi --file .\Dockerfile .

docker container run --detach --publish 80 testwebapi

脚本运行正常,我能够运行我的应用程序。

问题:
  • 我正在使用dotnet-framework:4.7.2-sdk图像来构建&aspnet:4.7.2图像来运行应用程序。我查看了aspnet镜像,它包含“Windows Server Core作为基本操作系统,IIS 10作为Web服务器,.NET Framework(有多个版本),. NET IIS的可扩展性”。在这种情况下,我还需要dotnet-framework:4.7.2-sdk图片吗?

    enter image description here
  • 我不认为脚本使用IIS作为Web服务器。如何使用IIS托管此应用程序?
  • 最佳答案

    首先,请注意,sdk基本镜像实际上没有包含在最终镜像中,只有运行时镜像包含在其中。 FROM中有两条Dockerfile行:

    FROM microsoft/dotnet-framework:4.7.2-sdk AS build
    ...
    FROM microsoft/aspnet:4.7.2 AS runtime

    这将创建一个 multi-stage build。只有第二(最后)阶段的基础镜像(即运行时镜像)将包括在镜像中。

    对于.NET Framework本身之外的sdk镜像中包含的内容,请查看其 Dockerfile,您会发现生产服务器上绝对不需要的一些内容,例如NuGet CLI,VS Test Agent等。

    关于c# - 我可以进一步减少对由docker容器上的asp.net Web API应用程序运行的docker镜像的依赖性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53999565/

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