पाठ 10 / 25
Containers और Dev Environments
Agent को ऐसे container या VM में चलाएँ जिसमें सिर्फ़ project mount हो।
दायरे को छोटा करें
सबसे मज़बूत व्यावहारिक guardrail है agent कहाँ चलता है। Container, dev container या VM में आप सिर्फ़ project folder mount कर सकते हैं, non-root user से चला सकते हैं, अपनी home directory, SSH keys और cloud credentials बाहर रख सकते हैं, capabilities घटा सकते हैं और CPU व memory सीमाएँ लगा सकते हैं। Agent पूरी तरह बहक भी जाए तो वह सिर्फ़ फेंकने योग्य परिवेश को नुक़सान पहुँचा सकता है। याद रखें कि container मज़बूत सीमा है पर पूर्ण नहीं, इसलिए उसे अद्यतन रखें और privileged mode से बचें।
कसा हुआ container
सिर्फ़ project mount है; root filesystem read-only है; अतिरिक्त Linux capabilities नहीं; सीमित memory और processes। अपनी toolchain के अनुसार बदलें; image का नाम प्लेसहोल्डर है।
docker run --rm -it \
--user 1000:1000 \
--read-only --tmpfs /tmp \
--cap-drop ALL --security-opt no-new-privileges \
--memory 2g --pids-limit 256 \
-v "$PWD":/workspace -w /workspace \
my-agent-image:latestDocker socket या home कभी mount न करें
/var/run/docker.sock mount करने से agent को host का नियंत्रण मिल जाता है, और ~ mount करने से SSH keys और tokens खुल जाते हैं। सिर्फ़ project mount करें, और जहाँ agent को लिखना न हो वहाँ read-only mount करें।
त्वरित जाँच: Agent के container में क्या mount होना चाहिए?
- सिर्फ़ project folder
- पूरी home directory
- Docker socket
- आपका SSH key folder
Answer
सिर्फ़ project folder — सिर्फ़ project उपलब्ध कराने से credentials और असंबद्ध files पहुँच से बाहर रहती हैं।