Ubuntu 上使用 Docker 时出现 ASP.NET Core HTTP 错误 404

Dan*_*lva 0 ubuntu docker asp.net-core

我是 docker 新手,我正在尝试在 Ubuntu 上的 docker 容器上运行一个简单的 ASP.NET Core 6 应用程序,但是,当我尝试通过 Google Chrome 访问该应用程序时,出现 HTTP ERROR 404 错误。

This is my Dockerfile:
# syntax=docker/dockerfile:1
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
WORKDIR /app
EXPOSE 5000
ENV ASPNETCORE_URLS=http://+:5000
    
# 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 mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "TesteDocker.dll"]
Run Code Online (Sandbox Code Playgroud)

我已在 Program.cs 上禁用 HTTPS 重定向

我使用此命令来构建图像并运行容器:

docker build -t testedocker .
docker run -d -p 5000:5000 --name testedocker_container testedocker
Run Code Online (Sandbox Code Playgroud)

并尝试以这种方式访问​​应用程序 URL:http://localhost:5000/swagger

我做错了什么?

Han*_*ian 5

默认情况下,仅当应用程序在开发模式下运行时,Swagger 才可用。默认情况下,Docker 不是开发模式。

要使其在开发模式下运行,您可以在运行容器时将 ASPNETCORE_ENVIRONMENT 环境变量设置为“开发”,如下所示

docker run -d -p 5000:80 -e ASPNETCORE_ENVIRONMENT=Development --name testedocker_container testedocker
Run Code Online (Sandbox Code Playgroud)

然后您应该能够访问 swagger 页面。