Как запустить ядро ​​.net с профилем запуска через докер - PullRequest
2 голосов
/ 22 марта 2019

Я использую 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

Что здесь делать правильно?

Спасибо!

1 Ответ

0 голосов
/ 22 марта 2019

Одним из возможных способов является явная установка всех различных переменных среды, которые launchSettings включает в Dockerfile. Есть ли у вас что-то кроме environmentVariables в launchSettings.json?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...