首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在码头调试odoo?

如何在码头调试odoo?
EN

Stack Overflow用户
提问于 2019-08-23 12:33:32
回答 3查看 3.9K关注 0票数 5

我无法在docker容器中调试odoo。

我使用的是Visual代码,我有以下launch.json配置。

代码语言:javascript
运行
复制
{
   "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"
           ]
       }
   ]
}

每次启动调试器时,都会发生以下错误:

代码语言:javascript
运行
复制
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

有人知道我的调试配置有什么问题吗?

谢谢!!

更新

也许更多的信息是必要的。我使用一个坞-撰写文件启动odoo服务器,然后使用VSCode远程附加到该odoo。使用odoo命令重新启动服务器在VSCode终端上可以正常工作。

我有两个码头集装箱在运行:

代码语言:javascript
运行
复制
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上运行:

代码语言:javascript
运行
复制
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)

因此,使用“启动”请求类型可能是错误的,因为它试图重新启动服务器。我还测试了这个配置:

代码语言:javascript
运行
复制
{
   "name": "Odoo 12 Attach",
   "type": "python",
   "request": "attach",
   "port": 8069,
   "host": "localhost",           
 },

但是,调试器将立即终止,不会出现错误消息。

EN

Stack Overflow用户

发布于 2020-01-16 17:52:11

我让它按照接下来的步骤工作:

  1. 使用docker-compose updocker run启动容器
  2. 使用docker exec -it -u 0 "container name" /bin/bash访问具有根权限的odoo容器
  3. 安装ptvsd pip3 install ptvsd
  4. 更新odoo addons/__init__.py文件以启用ptvsd攻击,在/usr/lib/python3/dist-packages/odoo/addons/__init__.py中找到文件并在文件末尾添加以下代码:
代码语言:javascript
运行
复制
import ptvsd
ptvsd.enable_attach(address=('0.0.0.0', 3000))

ptvsd.wait_for_attach()
  1. 退出容器并使用docker-compose restartdocker restart "container name"重新启动
  2. 执行docker inspect "container name"并在Networks部分下复制IPAddress
  3. 打开visual并创建launch.json,将容器ip粘贴在host字段和ptvsd附加方法( ex )上指定的port下面。在我的例子中,ip是172.27.0.3
代码语言:javascript
运行
复制
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "port": 3000,
            "host": "172.27.0.3",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "."
                }
            ]
        }
    ]
}
  1. 单击“开始调试”,您将能够在调试控制台上看到odoo日志。

注意:一定要将3000端口暴露在集装箱上。

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57626427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档