如何使用VisualStudio Docker调试器(launchSettings.json配置文件)从Docker容器中暴露自定义端口(TCP)?

4
我希望能够通过在launchSettings.json中指定Docker配置文件来在Visual Studio中调试Docker容器。但是,launchSettings.json只提供了设置httpPort和httpsPort的选项(它们是从80和443映射到容器外部的自定义端口)。
我有一个TCP服务器应用程序(TCPListener),它监听自定义端口(比如说9999)。我想在调试期间将此端口暴露在容器外部。我能否以某种方式实现这一点(通过编辑launchSettings.json或其他配置文件),还是我必须单独运行Docker镜像并以某种方式附加到它上面?
2个回答

5
现在可以实现这一点。在“launchSettings.json”中添加一个具有以下属性的“Docker”配置文件。例如;
"Docker": {
      "commandName": "Docker",
      "httpPort": 54623, 
      "environmentVariables": {
        "ASPNETCORE_URLS": "http://+:5000",
        "ASPNETCORE_ENVIRONMENT": "Development"
      }

    }

以上配置将会将主机端口54623转发到Docker端口5000。使用此配置文件进行调试时,Docker端口5000将自动暴露。

1
我明白了。虽然我不确定是否可以通过launchSettings.json实现,但这是适用于我的解决方案:
添加:
<DockerfileRunArguments>-p 9999:9999</DockerfileRunArguments>

将这些命令行参数附加到 Docker RUN 命令之前,以便在启动容器之前将其添加到 *.csproj 文件的 PropertyGroup 中。我看到的唯一问题是现在我们在多个地方重复使用了端口号。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接