Я пытаюсь запустить приложение .Net 8 с этим Dockerfile:
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
ENV ASPNETCORE_URLS=http://+:9000
EXPOSE 9000
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["EPS.Gateway/EPS.Gateway.csproj", "EPS.Gateway/"]
RUN dotnet restore "./EPS.Gateway/EPS.Gateway.csproj"
COPY . .
WORKDIR "/src/EPS.Gateway"
RUN dotnet build "./EPS.Gateway.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./EPS.Gateway.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "EPS.Gateway.dll", "--server.urls", "http://+:9000"]
Я запускаю его из Visual Studio 2022, но он не запускается на http://localhost:9000/swagger/index.html, как ожидалось, и перенаправляется на https://localhost:0/swagger.
В его журнале указано, что он прослушивает порт 9000:
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://[::]:9000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /app
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://[::]:9000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /app
Я попробовал все способы, которые видел на Stackoverflow, но это не сработало.
@ life888888 Я запускаю его прямо из Visual Studio, с панели рядом с стартовым проектом.
Visual Studio задает множество параметров для команды docker run, которую она запускает при запуске контейнера, и это влияет на то, как контейнер запускается. Можете ли вы где-нибудь в Visual Studio увидеть команду, которую он запускает?


У меня была только эта проблема. В моем случае в переменных среды были неправильные порты. Убедитесь, что у вас есть правильные порты в DockerFile, docker-compose.yml и в переменных среды.
Спасибо. Я нашел его вчера, он находится в файле launchSettings.json, где я установил httpPort и sslPort.
Ваш ответ можно улучшить, добавив дополнительную вспомогательную информацию. Пожалуйста, отредактируйте , добавив дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.
команда show, как запустить команду docker.