我创建了标准ASP。.NET Core Web API .NET 5项目在。NET中用Docker文件自动创建。我没有选择选项"配置http "。
当我在Visual Studio中作为docker容器运行这个项目时,一切都很好,我可以访问swagger UI并点击RESRT API端点。
当我构建映像并手动运行它时,它不工作。
我是这样构建的:
D:tempWebApplication1>docker image build -t kicaj29/webapplication1:1.0.0 -f WebApplication1/Dockerfile .
并像这样运行
docker run -p 8855:80 kicaj29/webapplication1:1.0.0
容器正在运行,但当我试图使用地址http://localhost:8855/swagger/index.html访问它时,我得到的信息是无法找到该页面。
可能Visual Studio增加了一些额外的工作人员,但我无法识别。
有办法解决吗?
jacek
要使Swagger可用,您需要在开发模式下运行应用程序。你可以通过设置ASPNETCORE_ENVIRONMENT变量为"Development"来做到这一点。如果您将docker运行语句更改为
docker run -p 8855:80 -e ASPNETCORE_ENVIRONMENT=Development kicaj29/webapplication1:1.0.0
当您这样做时,Swagger UI将在http://localhost:8855/swagger
上可用。也可以添加
ENV ASPNETCORE_ENVIRONMENT=Development
到你的Dockerfile。那么它将默认处于开发模式。