2016-02-10 20 views
6

मैं एक कस्टम पायथन मॉड्यूल स्थापित करने के लिए आधिकारिक डॉकर पोस्टग्रेस छवि का विस्तार करने की कोशिश कर रहा हूं ताकि मैं इसे plpython3 संग्रहीत प्रक्रिया के साथ उपयोग कर सकूं।विस्तारित डॉकर आधिकारिक पोस्टग्रेस छवि

यहाँ मेरी dockerfile है

FROM postgres:9.5 
RUN apt-get update && apt-get install -y postgresql-plpython3-9.5 python3 
ADD ./repsug/ /opt/smtnel/repsug/ 
WORKDIR /opt/smtnel/repsug/ 
RUN ["python3", "setup.py", "install"] 
WORKDIR/

मेरा प्रश्न है: मैं ENTRYPOINT और अध्यक्ष एवं प्रबंध निदेशक मेरी Dockerfile आदेश जोड़ने की जरूरत है? या वे आधार छवि से "विरासत" हैं?

आधिकारिक readme.md में उदाहरण एक डॉकरफ़ाइल दिखाता है जो केवल एंटरपॉइंट या सीएमडी के बिना लोकेल को बदलता है।

मैंने रीडमे में भी पढ़ा है कि मैं कस्टम sh और/या sql स्क्रिप्ट को निष्पादित करके छवि का विस्तार कर सकता हूं। क्या मुझे अपनी कस्टम छवि बनाने के बजाय इस सुविधा का उपयोग करना चाहिए? इस मामले में सवाल यह है कि मैं कैसे सुनिश्चित करता हूं कि स्क्रिप्ट केवल "इंस्टॉल समय" पर एक बार चलती हैं और हर बार नहीं? मेरा मतलब है, अगर डेटाबेस पहले ही बनाया गया है और पॉप्युलेट किया गया है, तो मैं इसे ओवरराइट नहीं करना चाहता हूं।

धन्यवाद, Awer

+0

मेरी राय में, एंटरपॉइंट और सीएमडी विरासत में हैं, लेकिन जैसा कि आपके पास केवल एक ही आदेश हो सकता है, केवल अंतिम ही वैध होगा, इसलिए यदि आप एक जोड़ते हैं, क्योंकि यह अंतिम सीएमडी या एंटरपॉइंट होगा, तो यह होगा इस्तेमाल किया गया – user2915097

उत्तर

5

आप अपने Dockerfile में एक नया ENTRYPOINT परिभाषित यदि यह विरासत में मिला ENTRYPOINT पार कर जाएगी। तो उस स्थिति में, पोस्टग्रेज़ स्वचालित रूप से प्रारंभ नहीं हो पाएंगे (जब तक कि आप एक ही एंटरपॉइंट लिखते हैं)।

https://docs.docker.com/engine/reference/builder/#entrypoint

इसके अलावा, सरकारी postgres छवि आप /docker-entrypoint-initdb.d फ़ोल्डर में/.sh फ़ाइलों .sql जोड़ने, तो वे एक बार डेटाबेस आरंभ नहीं हो जाता क्रियान्वित किया जा सकता।

अंत में, यदि आप नहीं चाहते हैं कि पोस्टग्रेर्स आपके डेटा को हटा दें, तो आप /var/lib/postgresql/data फ़ोल्डर और प्रत्येक docker run ... कमांड में स्थानीय फ़ोल्डर को जारी रखने के लिए एक वॉल्यूम माउंट कर सकते हैं।

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