1

Docker 컨테이너 내부의 Python 3.6에서 플라스크 앱을 실행 중입니다. 내 Mac에서 VS 코드에서 플라스크 응용 프로그램을 디버깅하려고합니다.Python 원격 디버거가 VS 코드에서 내 코드를 디버그하지 않습니다.

내 브레이크 포인트에 영향을주지는 않지만 원격 디버거가 연결되어 있으며 모두 VS 코드에서 "확인되지 않은"중단 점으로 표시됩니다.

원격 디버거를 실행하면 __init__.py의 라인 587에서 Resource.dispatchRequest()resp = meth(*args, **kwargs)으로 바뀝니다. 앞으로 나아가거나, 들어가거나, 빠져 나오려고하면 결과가 나오지 않습니다. 약 20 번 정도 계속 누르면 내 테스트 스크립트의 다음 요청으로 넘어갑니다.

디버거가 내 코드의 중단 점에서 절대로 멈추지 않고 내 중단 점을 확인되지 않은 중단 점으로 표시합니다. 디버거가 플라스크 요청 코드에 걸렸을 때 호출 스택은 내 코드의 메소드를 회색으로 표시하고 그 옆에있는 "알 수없는 소스"라고 말합니다. "변수"창에서 로컬 변수를 볼 수는 있지만 호출 스택에서 해당 변수를 사용할 수 없습니다.

코드를 디버깅하려면 어떻게 VS 코드를 얻을 수 있습니까? 당신이 위치하고 동일한 경로 아래에 코드를 복사하지 않는 한

{ 
    "name": "Python: Attach", 
    "remoteRoot": "${workspaceFolder}", 
    ... 
} 

이 기본값하는 도커 컨테이너 이해가되지 않습니다 다음 launch.jsonAttach 섹션에서

답변

0

는 다음과 같은 기본 설정되어 있습니다 호스트 컴퓨터에서. 컨테이너에

내 Dockerfile 복사 내 코드를 다음과 같이

{ 
    "name": "Python: Attach", 
    "remoteRoot": "/app/", 
    ... 
} 

을 그리고 지금은 내 코드를 디버깅 할 수 있습니다 :

COPY . /app/ 

그래서 launch.json 요구의 Attach 섹션합니다.