この質問に登録しました。リモートデバッグが可能かどうかについてですpython VS Codeを使用したDockerコンテナー内のコード。ここで完全に構成されたDockerコンテナーを使用しています。少し手伝いました。 mとにかくdockerの新機能です。Odoov10を実行していますが、VS Codeでリモートデバッグを機能させることができません。 this の説明を試しましたが、実際にはわかりません。可能ですか?はい、どうすればそれを機能させることができますか?VS Code 1.6.1とPython Extension from Don Jayamanneの拡張機能を使用してKubuntu 16.04を実行しています。ああそうだといいのですがこの質問で正しい場所にいて、それはいかなる規則にも違反していません。
UPDATE:
エルトン・ストーンマンのやり方を試しました。それで私はこのエラーを得ています:
There was an error in starting the debug server.
Error = {"code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect",
"address":"172.21.0.4","port":3000}
私のDockerfile
は次のようになります:
FROM **cut_out**
USER root
# debug/dev settings
RUN pip install \
watchdog
COPY workspace/pysrc /pysrc
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
python-dev \
&& /usr/bin/python /pysrc/setup_cython.py build_ext --inplace \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 3000
USER odoo
私のDockerfileのpysrc
は、以前はPyDev(Eclipse)での作業を目的としていたため、そこにあります。
これは、私が使用したrun command
です。
docker-compose run -d -p 3000:3000 odoo
そして、これは私のlaunch.json
の重要な部分です:
{
"name": "Attach (Remote Debug)",
"type": "python",
"request": "attach",
"localRoot": "${workspaceRoot}",
"remoteRoot": "${workspaceRoot}",
"port": 3000,
"secret": "my_secret",
"Host": "172.21.0.4"
}
今のところそれで十分だと思います。
更新2:
さて、私は解決策を見つけました。私はDockerがどのように機能するかを完全に誤解し、まったく間違って試してみました。私はすでに完全に構成されたDocker-composeを持っています。だから私がしなければならなかったすべては私のVSコード設定をdocker-compose.ymlに適合させることでした。つまり、launch.jsonをポート8069(デフォルトのOdooポート)に変更し、docker-compose up
を使用するだけで、VSコードでデバッグが機能します。残念ながらptvsd
を使用するとOdoo環境が破壊されますが、少なくとも今はデバッグできます。ありがとう!
はい、可能です。PythonアプリがDockerコンテナで実行されている場合、リモートマシンのように扱うことができます。
Dockerイメージで、リモートデバッグポートを利用できるようにする必要があります(例:DockerfileのEXPOSE 3000
)。ptvsd
セットアップをPythonアプリに含めます、コンテナの実行時にポートを公開します。
docker run -d -p 3000:3000 my-image
次に、docker inspect
を使用して、実行中のコンテナのIPアドレスを取得します。これは、起動ファイルのHost
に使用するものです。