как настроить среду ядра dotnet в докере? - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу иметь возможность запускать ядро ​​dotnet через докер в разных средах (пока только для разработки и производства), но мой докер всегда запускается в производственной среде.Вот мой файл Docker:

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 -o out

# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "test.dll"]

У меня есть appsettings.Production.json и appsettings.Development.json, и я настроил две среды в program.cs, как показано ниже:

 public static IWebHostBuilder CreateWebHostBuilder (string[] args) =>
            WebHost.CreateDefaultBuilder (args)

            .ConfigureAppConfiguration ((hostingContext, config) => {
                config.AddJsonFile ("appsettings.Development.json", optional : false, reloadOnChange : false)
                    .AddJsonFile ("appsettings.Production.json", optional : false, reloadOnChange : false);
            })
            //End of update
            .UseStartup<Startup> ();

Я создаю образ докера и контейнер, но когда он запускается, он запускается в производственном режиме, я хочу, чтобы он запускался в режиме разработки

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Если вы не укажете среду во время работы контейнера, по умолчанию будет использоваться «Производство».

Для запуска другой среды:

docker run -d -p 8000:80 –name something –env ASPNETCORE_ENVIRONMENT=Development myimage

0 голосов
/ 27 февраля 2019

ASP.NET Core считывает следующую переменную среды ASPNETCORE_ENVIRONMENT, если она не установлена, то по умолчанию она production.Вам нужно использовать это в своем Dockerfile

ENV ASPNETCORE_ENVIRONMENT Development

Или, если вы используете файл docker-compose.yml

environment:
  ASPNETCORE_ENVIRONMENT: Development

Для получения более подробной информации:

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