默认情况下,Swagger仅在应用程序以开发模式运行时可用。默认情况下,Docker不是开发模式。
我是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"]
我已禁用Program.cs 上的HTTPS重定向
我正在使用以下命令来构建映像并运行容器:
docker build -t testedocker .
docker run -d -p 5000:5000 --name testedocker_container testedocker
尝试以这种方式访问应用程序URL:http://localhost:5000/swagger
我做错了什么?
为了使它在开发模式下运行,您可以在运行容器时将ASPNETCORE_ENVIRONMENT环境变量设置为"development",如以下
docker run -d -p 5000:80 -e ASPNETCORE_ENVIRONMENT=Development --name testedocker_container testedocker
然后你应该能够访问招摇页面。