如何通过 docker 使用启动配置文件运行 .net core 应用程序

Ant*_*sky 5 .net c# docker .net-core asp.net-core

我正在使用 Docker 将 ASP.NET Core 应用程序部署到 Linux 计算机。我有一个几乎默认的 Dockerfile,如下所示:

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

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Run Code Online (Sandbox Code Playgroud)

所以我的观点是能够构建和运行具有不同设置和在launchsettings.json. 为此,我需要使用不同的 dockerfile,但有一个问题:如何设置启动配置文件?

Docker 用于ENTRYPOINT ["dotnet", "aspnetapp.dll"]启动应用程序(这似乎是正确的做法)。该字符串意味着dotnet将执行命令,并且根据说明似乎无法将启动配置文件作为参数传递。

是的,我知道该dotnet run命令允许通过--launch-profile <NAME>. 但文档表示不建议仅使用dotnet run并建议按照 Dockerfile 中的方式发布应用程序

在这里做什么是正确的?

谢谢!

Oma*_*jid -1

一种可能的方法是显式设置 launchSettings 包含在Dockerfile. 你除了environmentVariables里面还有其他的东西吗launchSettings.json