2016-04-14 24 views
6

मैं एक bash स्क्रिप्ट लिखने के लिए चाहते हैं के रूप में डोकर कंटेनर में आदेश पर अमल करने के लिए क्रिया को स्वचालित निम्नलिखित:कैसे बैश खोल स्क्रिप्ट का हिस्सा

चल कंटेनर के अंदर जाओ

docker exec -it CONTAINER_NAME /bin/bash 

कुछ आदेश निष्पादित करें:

cat /dev/null > /usr/local/tomcat/logs/app.log 
exit 

समस्याग्रस्त हिस्सा तब होता है जब docker exec निष्पादित किया जाता है। नया खोल बनाया गया है, लेकिन अन्य आदेश निष्पादित नहीं किए गए हैं।

क्या इसे हल करने का कोई तरीका है?

उत्तर

14

आप heredocdocker exec आदेश के साथ उपयोग कर सकते हैं:

docker exec -i CONTAINER_NAME bash <<'EOF' 
cat /dev/null > /usr/local/tomcat/logs/app.log 
exit 
EOF 

चर का उपयोग करने के लिए:

logname='/usr/local/tomcat/logs/app.log' 

तो के रूप में उपयोग:

docker exec -i CONTAINER_NAME bash <<EOF 
cat /dev/null > "$logname" 
exit 
EOF 
+0

धन्यवाद। यह काम। मैं बाहरी से हेरेडोक तक पैरामीटर कैसे पास कर सकता हूं? –

+0

पैरामीटर पास करने के लिए पहली पंक्ति में 'ईओएफ' के बजाय 'ईओएफ' का उपयोग करें और फिर हेरेडोक – anubhava

+0

के अंदर चर का उपयोग करें, उन लोगों के लिए, मुझे सफलतापूर्वक 'डॉकर रन' कमांड के साथ काम करने के लिए मिला। – ndmeiri

-3

आप बस शुरू कर सकते हैं

docker exec -it container_id cat /dev/null > /usr/local/tomcat/logs/app.log

संबंधित मुद्दे