Tôi đang gặp khó khăn khi tìm ra cách thiết lập gỡ lỗi từ xa ứng dụng python (Flask) đang chạy trong vùng chứa Docker. Cụ thể tôi đang sử dụng docker-compose, PyCharm chuyên nghiệp và python 3.5. Đây là những gì tôi đã thực hiện cho đến nay:Gỡ lỗi từ xa PyCharm trong vùng chứa docker
- tôi sao chép "pycharm-debug-py3k.egg" vào thư mục dự án
tôi đã thêm các dòng sau trong file wsgi.py:
nhập sys sys.path.append ('../ pycharm-debug-py3k.egg') nhập pydevd pydevd.settrace ('0.0.0.0', port = 8200, stdoutToServer = True, stderrToServer = True)
Tôi đã tạo cấu hình gỡ lỗi từ xa trong PyCharm (bằng cách ánh xạ đường dẫn của đường dẫn dự án máy cục bộ của tôi đến đường dẫn trong t ông Docker chứa)
bằng cách chạy cấu hình debug (click vào biểu tượng lỗi) từ PyCharm nó in (và bị treo):
Starting debug server at port 4200
Use the following code to connect to the debugger:
import pydevd
pydevd.settrace('0.0.0.0', port=4200, stdoutToServer=True, stderrToServer=True)
Waiting for process connection...
... và trong các bản ghi chứa Docker Tôi đọc :
không thể kết nối 0.0.0.0: 4200
tôi nên làm gì? (Mục tiêu của tôi là có thể thêm điểm ngắt trong PyCharm và ngừng thực hiện ứng dụng vùng chứa docker để gỡ lỗi nó)
Chúng tôi cần thêm thông tin. Bạn đã thiết lập Python là SDK từ xa - nếu có, bạn có máy chủ SSHD trên vùng chứa mà tôi đề xuất. Trong trường hợp này, pycharm nên thực sự làm tất cả cho bạn, liên quan đến đường hầm - nó sẽ không còn là một câu hỏi docker –
Không, tôi không sử dụng một thông dịch viên từ xa ... phải không? – daveoncode
kiểm tra số cổng của bạn, giống như trong tệp 'wsgi.py' bạn đã xác định' pydevd.settrace ('0.0.0.0', port = 8200, stdoutToServer = True, stderrToServer = True) 'nhưng máy chủ gỡ lỗi đang chạy trên' 4200', có thể thay đổi thành 'pydevd.settrace ('0.0.0.0', port = 4200, ...' hoạt động? – Pitt