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

时间:2019-03-22 15:57:20

标签: c# .net docker asp.net-core .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"]

因此,我的意思是能够用launchsettings.json中声明的不同设置和不同启动配置文件来构建和运行项目的不同实例。为此,我需要使用不同的dockerfile,但存在一个问题:如何设置启动配置文件?

Docker使用ENTRYPOINT ["dotnet", "aspnetapp.dll"]启动应用程序(这似乎是正确的选择)。该字符串表示将执行dotnet命令,并且根据doumentation似乎无法传递启动概要文件作为参数。

是的,我知道dotnet run命令允许通过--launch-profile <NAME>传递它。但是docs说,不建议仅使用dotnet run并建议以在Dockerfile中完成的方式发布应用程序

这里正确的做法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

一种可能的方法是显式设置launchSettings包含在Dockerfile中的所有不同环境变量。 environmentVariables中是否有launchSettings.json以外的东西?