Как открыть основной докер контейнер asp.net для публичного URL? - PullRequest
1 голос
/ 18 марта 2019

Если у меня есть общедоступный URL-адрес, такой как https://dogsandcats.com, и я хотел бы иметь возможность подключиться к нему из развернутого док-контейнера на этот сервер, как я могу это сделать?

В настоящее время у меня есть следующий Dockerfile для моего проекта .Net Core:

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 .

EXPOSE 8080
ENTRYPOINT ["dotnet", "MedicineInventoryManagement.dll"]

Я представляю порт 8080, и когда я захожу на localhost: 8080 в своей локальной среде, я вижу, как мой веб-сервер распространяет приложение. Я подключил порт 8080 на https://dogsandcats.com, но он не работает, как на моем локальном компьютере.

Нужно ли что-то делать со следующим блоком кода в Program.cs?

public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }
}

Или проблема кроется в другом месте?

1 Ответ

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

Образ microsoft / dotnet: aspnetcore-runtime устанавливает для переменной среды ASPNETCORE_URLS значение http://+:80, что означает, что, если у вас нет явного определения, установите URL-адрес в приложении, например, через app.UseUrl в вашем Program.cs. тогда ваше приложение будет прослушивать порт 80 внутри контейнера.

https://hub.docker.com/r/microsoft/aspnetcore/

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