見出し画像

OdooのDockerコンテナでVSCodeからデバッグする

DockerコンテナでOdooの開発環境を整えました。
この方法でデバッグができるかと思ったのですが、うまく動作しませんでした。

DebugpyでOdooのAddOnをデバッグをできるようにする

Debugpyを使ってOdooのAddOnデバッグをできるようします。
Debugpyは、Microsoftが開発しているDebug Adapter ProtocolのPythonによる実装で、このプロトコルを使用すると、他のプログラムからデバッグすることができるようになる物です。

VSCodeにPython 拡張をインストール

まだインストールしていない場合はインストールします。

Debugpyのインストール

コンテナ内でDebugpyをインストールします。


$ pip install debugpy

コンテナのrequirements.txtに追加しておくと、再起動時に自動的に読み込まれて便利です。

コンテナ内にOdoo実行用スクリプト追加

開発用のコンテナ内にDebugpy経由でOdooを実行するスクリプトを追加します。
プロジェクトのルートフォルダなどに run_odoo.sh などとして保存し、実行権限を付与しておきます。

#!/bin/bash
python3 -m debugpy --listen 0.0.0.0:8888 /usr/bin/odoo --db_host=db --db_port=5432 --db_user=odoo --db_password=odoo --database=Odoo14 --limit-time-real=100000 

VSCodeにDebugpy接続用設定追加

VSCodeのデバッグ実行設定 (launch.json)を以下のように設定します。
remoteRootは、Odooに読み込ませるAddOnの場所を指定します。

{
  // IntelliSense を使用して利用可能な属性を学べます。
  // 既存の属性の説明をホバーして表示します。
  // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Odoo: Attach",
      "type": "python",
      "request": "attach",
      "port": 8869,
      "debugServer": 8888,
      "host": "localhost",
      "pathMappings": [
        {
          "localRoot": "${workspaceFolder}",
          "remoteRoot": "/mnt/extra-addons",
        }
      ],
      "logToFile": true
    }
  ]
}

Debugpy を使用してOdoo実行

Odoo実行用のスクリプトからOdooを立ち上げます。

VSCodeからDebugpy経由でOdooに接続

VSCodeからDebugpyへのデバッグ接続をします。
AddOnのソースコードにブレークポイントを置いて、デバッグできるか確認します。

ブレークポイントで停止

これでDcokerコンテナで動作しているOdooに対して、Debugpy経由でVSCode上からデバッグすることが可能となりました。

この記事が気に入ったらサポートをしてみませんか?