我有一个应用程序在 Linux 上的 docker swarm 中运行。我需要附加调试器 (gdb),但出现错误:
ptrace: Operation not permitted.
Run Code Online (Sandbox Code Playgroud)
研究使我使用“cap_add”,但这不适用于游泳应用
https://docs.docker.com/compose/compose-file/#cap_add-cap_drop
cap_add, cap_drop
添加或删除容器功能。有关完整列表,请参阅 man 7 功能。
cap_add: - 所有
cap_drop: - NET_ADMIN - SYS_ADMIN
Run Code Online (Sandbox Code Playgroud)Note: These options are ignored when deploying a stack in swarm mode with a (version 3) Compose file.
我意识到我可以使用 cap_add 手动启动容器并像这样调试,但我更喜欢调试而不必先停止应用程序。
有没有办法向集群部署的应用程序添加功能(特别是 SYS_PTRACE),以便调试器可以工作?