【发布时间】:2025-11-30 21:35:02
【问题描述】:
我无法在 docker 容器中调试 odoo。
我正在使用 Visual Studio Code,并且我有以下 launch.json 配置。
{
"version": "0.2.0",
"configurations": [
{
"name": "Odoo 12",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "/usr/bin/odoo",
"args": [
"--config=/etc/odoo/odoo.conf"
]
}
]
}
每次我启动调试器时,都会出现这个错误:
Exception in thread odoo.service.httpd:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 410, in http_thread
self.httpd = ThreadedWSGIServerReloadable(self.interface, self.port, app)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 136, in __init__
handler=RequestHandler)
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 476, in __init__
HTTPServer.__init__(self, (host, int(port)), handler)
File "/usr/lib/python3.5/socketserver.py", line 440, in __init__
self.server_bind()
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 151, in server_bind
super(ThreadedWSGIServerReloadable, self).server_bind()
File "/usr/lib/python3.5/http/server.py", line 138, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.5/socketserver.py", line 454, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
有人知道我的调试配置有什么问题吗?
谢谢!!
更新
也许需要更多信息。 我使用 docker-compose 文件启动 odoo-server,然后使用 VSCode 远程附加到该 odoo-server。 使用 odoo-bin 命令重新启动服务器可以在 VSCode 终端上正常工作。
我有两个 docker 容器正在运行:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4ac4a4c8481f odoo:12.0 "/entrypoint.sh odoo…" 7 days ago Up 4 minutes 0.0.0.0:8069->8069/tcp, 8071/tcp odoo-docker_web_1
5910cce38985 postgres:10 "docker-entrypoint.s…" 7 days ago Up 4 minutes 5432/tcp odoo-docker_db_1
并且只有 odoo 服务器在 8069 上运行:
odoo@4ac4a4c8481f:/mnt/extra-addons$ lsof -i :8069
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3 1 odoo 7u IPv4 44986 0t0 TCP *:8069 (LISTEN)
所以我使用“启动”请求类型可能是错误的,因为它会尝试重新启动服务器。 我也测试过这个配置:
{
"name": "Odoo 12 Attach",
"type": "python",
"request": "attach",
"port": 8069,
"host": "localhost",
},
但随后调试器会立即终止而没有错误消息。
【问题讨论】:
-
该错误表示该端口已被使用。您是否两次运行相同的服务?
-
不,只是 odoo 在那个端口上运行。
标签: docker debugging visual-studio-code odoo