Troubleshoot: missing SYS_PTRACE capability
Subtrace requires the SYS_PTRACE Linux capability in order to work correctly. Expand the environment you’re using to find the exact change to make.
Docker (docker run)
If you’re using Subtrace in a Docker container via docker run, add --cap-add=SYS_PTRACE when starting your container. For example:
docker run -it --rm --cap-add=SYS_PTRACE debian:12
Docker Compose
Add cap_add: [SYS_PTRACE] to your service in compose.yaml:
services:
my-app:
image: ghcr.io/NAMESPACE/IMAGE_NAME:latest
command: "subtrace run -- ./start.sh"
cap_add:
- SYS_PTRACE
Kubernetes (Deployments/Pods)
Add the capability in the container securityContext:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: ghcr.io/NAMESPACE/IMAGE_NAME:latest
securityContext:
capabilities:
add:
- SYS_PTRACE
Amazon ECS (Fargate)
The ECS console UI does not expose linuxParameters.capabilities. Create a new task definition revision and edit the JSON to include SYS_PTRACE:
"linuxParameters": {
"capabilities": {
"add": ["SYS_PTRACE"]
}
},
Flightcontrol
Add the linuxCapabilities section to your flightcontrol.json:
"target": {
"type": "fargate",
"linuxCapabilities": {
"add": ["SYS_PTRACE"]
}
}