Я хочу удаленно отладить контейнер докера и раскрутить его при нажатии F5 (отладка).Это прекрасно работает, за исключением одной конкретной проблемы.Контейнер запущен, но оболочка не закрывается и, следовательно, ничего не происходит.Исходный код Python просто проверяет, работает ли он:
import ptvsd
import time
import os
print("Waiting to attach")
address = ('0.0.0.0', 3000)
ptvsd.enable_attach(address)
ptvsd.wait_for_attach()
time.sleep(2)
print('something changed')
print("end")
Я пытался запустить его с preLaunchTask launch.json :
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Terminal (integrated)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "DOCKER (Remote Debug)",
"type": "python",
"request": "attach",
"port": 3000,
"host": "localhost",
"pathMappings": [
{"localRoot": "${workspaceFolder}", "remoteRoot": "/app/"}
],
"preLaunchTask": "start_docker_compose",
"redirectOutput": false
}
]
}
Кроме того, я создал task.json для запуска контейнера:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "start_docker_compose",
"type": "shell",
"command": [
"docker run -it -p 5000:5000 dockertest",
],
"problemMatcher": []
}
]
}
Он прекрасно работает, пока команда оболочки не запустит контейнер и строку «Ожидание подключения»появляется.Тогда ничего не происходит, потому что оболочка ждет, и поэтому процесс удаленной отладки также не может подключиться.Есть ли обходной путь (я тоже пробовал bash с тем же результатом) или я ошибаюсь, и есть гораздо более плавное решение.Было бы здорово, если бы кто-то мог указать мне правильное направление.