Gdb в контейнере докеров возвращает "ptrace: операция не разрешена".
Я проверил /proc/sys/kernel/yama/ptrace_scope
в контейнере и на хосте - оба сообщают значение как ноль, но при подключении к pid один gdb сообщает
Reading symbols from /opt/my-web-proxy/bin/my-web-proxy...done.
Attaching to program: /opt/my-web-proxy/bin/my-web-proxy, process 1
ptrace: Operation not permitted.
Я также попытался подключиться к контейнеру с привилегированным флагом
docker exec --privileged -it mywebproxy_my-proxy_1 /bin/bash
Хост-система - это Fedora 25 с докере из их репозиториев, а контейнер - официальный centos6.8
Ответы
Ответ 1
Я обнаружил ответ - контейнер нужно запустить с помощью возможностей strace
Добавление этого файла в файл docker-compose.yml позволяет GDB работать
cap_add:
- SYS_PTRACE
Или он также может быть передан в командной строке docker с помощью --cap-add=SYS_PTRACE