django - VSCode + remote dev + django:避免转发端口
问题描述
我正在使用 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
我想知道这三个端口被转发的原因以及如何避免它。
解决方案
这是由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 端口映射:Blah Blah
他们说“appPort”属性将像我们在 docker-compose 文件上一样被映射。如果您使用 docker-compose 文件运行它,也许下一个代码也是一个解决方案。如果您不打算使用 docker-compose,那么在 devcontainer.json 中设置“appPort”属性应该足以避免自动映射。
ports:
- "3000"
- "8921:5000"
然后按F1打开对话框,重建devcontainer 和愉快的黑客攻击!
推荐阅读
- time - 一周中两年的时间序列
- android - Android 项目构建在 Bitrise 上失败并出现 safeargs 异常
- json - 使用 bash 将 `top` 的内容传递到 json 文件中的困难
- rust - 基于迭代器的代码与过程代码:如何让基于迭代器的算法更快?
- app-store - 我无法保存 AppStore 版本发布
- python - 如何在保留文件结构和更新 Pandas DataFrame 的同时将 Python 函数应用于数据
- java - 使用 testcontainers postgresql 进行 Spring 启动测试
- ruby-on-rails - 从不同的文件调用 rspec 方法
- python - 为什么注释不能出现在续行符之后?
- sqlite - 修改外键约束下的行