gpt4 book ai didi

docker - 如何在 docker 中创建和运行 .net Core Console App

转载 作者:IT老高 更新时间:2023-10-28 21:39:59 25 4
gpt4 key购买 nike

我有一个 .NET Core 2.1 控制台应用程序。我想在 Docker 镜像中运行此控制台应用程序。我是 Docker 新手,只是想弄清楚。

此时我有一个Dockerfile,灵感来自Microsoft's Example .我的文件实际上是这样的:

FROM microsoft/dotnet:2.1-runtime-nanoserver-1709 AS base
WORKDIR /app

FROM microsoft/dotnet:2.1-sdk-nanoserver-1709 AS build
WORKDIR /src
COPY MyConsoleApp/MyConsoleApp.csproj MyConsoleApp/
RUN dotnet restore MyConsoleApp/MyConsoleApp.csproj
COPY . .
WORKDIR /src/MyConsoleApp
RUN dotnet build MyConsoleApp.csproj -c Release -o /app

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

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

我的问题是,microsoft/dotnet:2.1-runtime-nanoserver-1709、microsoft/dotnet:2.1-sdk 和 microsoft/dotnet:2.1-runtime 之间有什么区别?我的 .NET 2.1 控制台应用程序应该使用哪一个?我很困惑,如果我 a) 构建我的控制台应用程序,然后将其部署到 docker 镜像,或者 b) 构建一个 docker 镜像,获取代码,然后在镜像本身上构建控制台应用程序。任何帮助表示赞赏。

最佳答案

任何对实际 Dockerfile 感兴趣的人引用:

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /app

COPY <your app>.csproj .
RUN dotnet restore <your app>.csproj

COPY . .
RUN dotnet publish -c Release -o out

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS runtime
WORKDIR /app
COPY --from=build /app/out ./

ENTRYPOINT ["dotnet", "<your app>.dll"]

关于docker - 如何在 docker 中创建和运行 .net Core Console App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51769324/

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