Я только что зарегистрировался на этот вопрос. Речь идет о том, можно ли удалять отладочный код python в контейнере Docker с VS Code. У меня есть полностью сконфигурированный контейнер Docker. Мне немного помогло, и я все-таки новичок в докере. В нем работает Odoo v10. Но я не могу заставить удаленный отладчик в VS Code работать. Я пробовал this пояснения, но я действительно не понимаю. Возможно ли это? И если да, как я могу заставить его работать? Я запускаю Kubuntu 16.04 с VS Code 1.6.1 и расширением Python от Don Jayamanne. Ах да, и я надеюсь, что я нахожусь в правильном месте с этим вопросом, и это не против каких-либо правил.Как удаленный отладочный код Python в контейнере Docker с кодом VS
UPDATE:
Только что попробовал путь Элтона Stoneman. С его помощью я получаю эту ошибку:
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
В pysrc
в моем Dockerfile это там, потому что это было предназначено для работы с 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-compose. Поэтому все, что мне нужно было сделать, - это адаптировать мои конфигурации VS Code к docker-compose.yml. Это означает, что мне просто пришлось сменить launch.json на порт 8069 (порт по умолчанию Odoo) и просто нужно использовать docker-compose up
, затем отладка работает в VS Code. К сожалению, использование ptvsd
kinda разрушает мою среду Odoo, но, по крайней мере, я могу отлаживать сейчас. Благодаря!
Можете ли вы обновить свое обновление 2 тем, что вы положили в свой 'launch.json'? Также не уверен, что вы имели в виду, когда говорили, что используете 'docker-compose up'. Объяснение вашего рабочего процесса было бы оценено :) – allthethings
К сожалению, у меня нет моего запуска.json' для этого проекта больше, но все, что я изменил в нем, было портом для «порта»: 8069'. 'docker-compose' - это инструмент, расширяющий функциональность докера. 'docker-compose up' просто запускает все найденные контейнеры докеров. Я должен сказать, что он по-прежнему не работает должным образом, я никогда не получал удаленный дозатор отладки в VS Code для работы tbh. Если вы его заработаете, скажите мне :). – Brotbret