如何防止 Visual Studio 或 Docker 更改主机端口号?

ada*_*101 18 visual-studio docker visual-studio-2019

我已经对我的 Web 应用程序进行了 dockerized,并且可以在 Visual Studio 中运行它,但是,它选择使用的主机端口号不一致。

在此处输入图片说明

我在哪里配置它以始终使用相同的端口号?

ada*_*101 28

我发现我可以通过编辑launchSettings.json和指定那里的值来做到这一点。这类似于 Arjun 的回答,但据我所知,没有像选择 IIS Express 那样添加端口号的 UI - 因此您必须直接编辑文件。

在此处输入图片说明

更新:实际上,就我而言,在执行此操作后,我仍然无法使端口号保持一致。对我有用的是右键单击该项目并添加“容器编排支持”。然后在 docker-compose 项目中设置端口号。这也有助于覆盖环境变量。

更新 2:对于在 中更改端口号的任何人launchSettings.json,您可能还需要删除任何现有容器和/或映像以使更改生效。清洁溶液对我来说是不够的。我不得不从 Docker Desktop 中删除它们。

  • 这应该在文档中!遇到了同样的问题,因为我的 API 有一个 SwaggerUI,由于我的身份验证回调,需要修复它的端口!编辑:实际上有一些关于它的文档可以在 https://learn.microsoft.com/en-us/visualstudio/containers/container-launch-settings?view=vs-2019 上找到,但在快速入门时它们几乎是隐藏的 (2认同)

Art*_*ter 10

在您的项目 launchSettings.json 中添加以下项目(黄色):

在此输入图像描述


Paw*_*Zaw 10

我在 docker-compose.yml 中设置了端口,但没有用。事实证明它被 docker-compose.override.yml 覆盖了。

您可以:

  • 设置覆盖内部的端口(始终适用)
  • 在 docker-compose.yml 中更改它并将其从覆盖中删除(然后您可以为不同的配置设置不同的端口)

docker-compose 文件结构

docker-compose 端口更改


Hen*_*nry 7

没有 UI,但您可以修改 .csproj 项目文件以添加 DockerfileRunArguments

<PropertyGroup> 
 <DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
 <DockerLaunchUrl>http://{ServiceIPAddress}</DockerLaunchUrl>
 <DockerfileRunArguments>-p 8080:80</DockerfileRunArguments>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您使用的是 NetCore,那么您可以使用 launchSettings.json 解决方案。对于框架,您可以使用“容器编排支持”或此技巧。