Я использую 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
. Для этого мне нужно использовать разные dockerfiles, но есть вопрос: Как мне настроить профиль запуска?
Docker использует ENTRYPOINT ["dotnet", "aspnetapp.dll"]
для запуска приложения (что кажется правильным). Эта строка означает, что команда dotnet
будет выполнена, и согласно doumentation кажется, что нет способа передать профиль запуска в качестве аргумента.
Да, я знаю, что команда dotnet run
позволяет передать ее через --launch-profile <NAME>
. Но документы говорят, что не рекомендуется использовать просто dotnet run
, и предлагают опубликовать приложение так, как это делается в Dockerfile
Что здесь делать правильно?
Спасибо!