Запустите контейнер Docker в VS Code при удаленной отладке, нажав F5 - PullRequest
0 голосов
/ 16 октября 2018

Я хочу удаленно отладить контейнер докера и раскрутить его при нажатии 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 с тем же результатом) или я ошибаюсь, и есть гораздо более плавное решение.Было бы здорово, если бы кто-то мог указать мне правильное направление.

...