Dotnet docker 容器
Dotnet docker container
我创建了一个默认 Web Api 项目(Weatherforecast),并且在没有触及它的情况下添加了 Docker 支持。之后,我通过单击 docker 文件(在 Visual Studio 2022 上)并选择构建 Docker 图像来构建图像。
众所周知,默认项目 运行s 并且在本地主机上运行良好。
现在,我关闭 Visual Studio 和 运行 图像,如下所示:
docker run -d -p 8080:80 --name somename myimage
容器运行而且好像是开放了8080端口,至少在DockerDesktop里是这么写的,但是服务器端不是运行ning。如果我尝试以下地址:
http://localhost:8080/swagger/index.html
我在浏览器上什么也没有。
如果我使用 Docker 从 Visual Studio 内部 运行 项目,它工作正常。
这让我发疯。关于如何正确 运行 dotnet docker 图像有什么想法吗?
顺便说一句,一旦我有了容器 运行ning(不是网络 api 项目),如果我进入容器并手动 运行 dotnet myimage.dll
它说明了有关地址的一些信息:http://*:80 已被占用...
有什么想法吗?
谢谢
默认情况下,仅当应用程序在开发环境中 运行ning 时才启用 Swagger。默认情况下,.NET docker 容器 运行 在生产环境中,因此 Swagger 不可用。
一个快速解决方法是在 运行 容器时设置环境,像这样
docker run -d -p 8080:80 --name somename -e ASPNETCORE_ENVIRONMENT=Development myimage
要获得更永久的解决方案,您可以添加
ENV ASPNETCORE_ENVIRONMENT=Development
到您的 Dockerfile,在 'base' 或 'final' 部分中,因此它最终出现在最终图像中。
我创建了一个默认 Web Api 项目(Weatherforecast),并且在没有触及它的情况下添加了 Docker 支持。之后,我通过单击 docker 文件(在 Visual Studio 2022 上)并选择构建 Docker 图像来构建图像。 众所周知,默认项目 运行s 并且在本地主机上运行良好。 现在,我关闭 Visual Studio 和 运行 图像,如下所示:
docker run -d -p 8080:80 --name somename myimage
容器运行而且好像是开放了8080端口,至少在DockerDesktop里是这么写的,但是服务器端不是运行ning。如果我尝试以下地址:
http://localhost:8080/swagger/index.html
我在浏览器上什么也没有。
如果我使用 Docker 从 Visual Studio 内部 运行 项目,它工作正常。 这让我发疯。关于如何正确 运行 dotnet docker 图像有什么想法吗?
顺便说一句,一旦我有了容器 运行ning(不是网络 api 项目),如果我进入容器并手动 运行 dotnet myimage.dll
它说明了有关地址的一些信息:http://*:80 已被占用...
有什么想法吗?
谢谢
默认情况下,仅当应用程序在开发环境中 运行ning 时才启用 Swagger。默认情况下,.NET docker 容器 运行 在生产环境中,因此 Swagger 不可用。
一个快速解决方法是在 运行 容器时设置环境,像这样
docker run -d -p 8080:80 --name somename -e ASPNETCORE_ENVIRONMENT=Development myimage
要获得更永久的解决方案,您可以添加
ENV ASPNETCORE_ENVIRONMENT=Development
到您的 Dockerfile,在 'base' 或 'final' 部分中,因此它最终出现在最终图像中。