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上からデバッグすることが可能となりました。
この記事が気に入ったらサポートをしてみませんか?