我按照https://github.com/Microsoft/dotnet-framework-docker链接构建了示例ASP.NET Web应用程序,构建在.net 4.6.1框架之上。
这是我的码头文件:
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作为基本操作系统,IIS10作为Web,.NET框架(可提供的多个版本),.NET可扩展性“。在这种情况下,我还需要dotnet-framework:4.7.2-sdk图像吗?
发布于 2019-01-02 03:06:09
首先,请注意sdk映像实际上并不包含在最终映像中,只有运行时映像是。在您的FROM中有两行Dockerfile
FROM microsoft/dotnet-framework:4.7.2-sdk AS build
...
FROM microsoft/aspnet:4.7.2 AS runtime这将创建一个多级建造。只有第二个(最后)阶段的基本映像(即运行时映像)将包含在图像中。
对于.NET框架本身之外的sdk映像中包含的内容,请查看它的Dockerfile,您将在生产服务器上发现一些绝对不需要的东西,例如NuGet CLI、VS Test等等。
https://stackoverflow.com/questions/53999565
复制相似问题