【问题标题】:VSCode + remote dev + django: avoiding forwarding portsVSCode + remote dev + django:避免转发端口
【发布时间】:2021-04-06 08:11:00
【问题描述】:

我正在使用 VSCode 远程开发来运行和调试 Docker 容器内的 django 项目。在我的devcontainer.json 中,我转发了端口 8000

 "forwardPorts": [8000],

这是我的launch.json

{

    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/myapp/manage.py",
            "args": [
                "runserver",
                "0.0.0.0:8000"
            ],
            "django": true
        }
    ]
}

当我使用这样的配置开始调试时,我看到 4 个端口被转发:端口 8000 和其他 3 个 rendom 高端口

8000 -> localhost:8000 (the only one I'd expect to see)
34075 -> 127.0.0.1:34075
37301 -> 127.0.0.1:37301
42129 -> 127.0.0.1:42129

我想知道这三个端口被转发的原因以及如何避免它。

【问题讨论】:

  • 我也在想同样的事情......由于调试,我最终打开了数百个端口。
  • Here 是一些避免转发端口的提示。不过,我猜它们无论如何都会被打开到开发容器中。

标签: django visual-studio-code vscode-remote


【解决方案1】:

这是由 ms-vscode-remote.remote-containers 的自动端口映射行为引起的。 请看这里:https://code.visualstudio.com/docs/remote/containers#_publishing-a-port

发布端口

Docker 有当 blah blah blah 时“发布”端口的概念

要发布端口,您可以:

使用 appPort 属性:blah blah

“appPort”属性必须在 devcontainer.json

  "appPort": [ 3000, "8921:5000" ]

使用 Docker Compose 端口映射: 呸呸呸

他们说“appPort”属性将像我们在 docker-compose 文件上一样被映射。如果您使用 docker-compose 文件运行它,也许下一个代码也是一个解决方案。如果您不打算使用 docker-compose,那么 在 devcontainer.json 中设置“appPort”属性应该足以避免自动映射。

  ports:
  - "3000"
  - "8921:5000"

然后F1打开对话框,重建 devcontainer和愉快的hacking

【讨论】:

  • 这是一个新贡献者的好答案!
  • Ty JAY,我确信这样使用 appPort 可以避免 devcontainer 打开 3 个随机端口。我太喜欢开发容器了。
猜你喜欢
  • 2018-01-27
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多