Я пытаюсь, чтобы мое основное приложение asp. net использовало ASPNETCORE_URLS для установки URL-адреса запуска. Он работает не так, как ожидалось.
Я перепробовал все, что нашел в Интернете, но застрял. Приложение работает без переменных среды и отлично работает в контейнере docker. Но не работает при включении переменных среды.
Желаемый результат: 0.0.0.0:5000 Результат: localhost: 5000
Запуск:
public Startup(IConfiguration configuration, IWebHostEnvironment env)
{
Configuration = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json")
.AddEnvironmentVariables()
.Build();
}
Переменная Env в файле dockerfile:
ENV ASPNETCORE_URLS=http://+5000
Docker Файл:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses
this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 5000
ENV ASPNETCORE_URLS=http://+5000
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["Platform/Platform.API/Platform.API.csproj", "Platform.API/"]
COPY ["Platform/Platform.Domain/Platform.Domain.csproj", "Platform.Domain/"]
COPY ["Platform/Platform.DataAccess/Platform.DataAccess.csproj", "Platform.DataAccess/"]
RUN dotnet restore "Platform.API/Platform.API.csproj"
COPY ./Platform .
WORKDIR "/src/Platform.API"
RUN dotnet build "Platform.API.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Platform.API.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Platform.API.dll"]
Переменная окружения обнаружена приложением, просто по какой-то причине она не будет использоваться.
Заранее спасибо!