2016-12-01 6 views
6

मैं निर्देशिका .dockerignore में निर्देशिका करता था ताकि यह छवि में शामिल नहीं किया जाएगा, जिसे मैं एक वेब सेवा चलाने के लिए उपयोग करता था।एक ही प्रोजेक्ट में विभिन्न बिल्डों के लिए अलग-अलग .dockerignore फ़ाइलों को कैसे निर्दिष्ट करें?

अब मैं अपने यूनिट परीक्षण चलाने के लिए डॉकर का उपयोग करने की कोशिश कर रहा हूं, और इस मामले में मैं tests निर्देशिका शामिल करना चाहता हूं।

मैंने docker build -h चेक किया है और कोई विकल्प संबंधित नहीं मिला है।

मैं यह कैसे कर सकता हूं?

+0

विभिन्न आधार निर्देशिकाओं का उपयोग करें? – Henry

उत्तर

6

इस समय, ऐसा करने का कोई तरीका नहीं है। उपयोग करने के लिए अनदेखी फ़ाइल प्रदान करने के लिए --ignore ध्वज को डॉकर में जोड़ने के बारे में एक लंबी चर्चा है - कृपया here देखें।

विकल्प इस समय आपके पास ज्यादातर बदसूरत हैं:

  • उपनिर्देशिका प्रत्येक अपने स्वयं के Dockerfile और .dockerignore है, जो अपने मामले में काम नहीं कर सकते है कि में अपनी परियोजना विभाजित करें।
  • ऐसी स्क्रिप्ट बनाएं जो प्रासंगिक फ़ाइलों को अस्थायी निर्देशिका में कॉपी करे और वहां डॉकर बिल्ड चलाएं।
0

एक और विकल्प एक और निर्माण प्रक्रिया है जिसमें परीक्षण शामिल हैं। जिस तरह से मैं यह करता हूं:

यदि परीक्षण यूनिट परीक्षण हैं तो मैं मुख्य प्रोजेक्ट छवि से प्राप्त एक नई डॉकर छवि बनाता हूं; मैं शीर्ष पर FROM चिपकता हूं, और फिर ADD परीक्षण, साथ ही किसी भी आवश्यक टूल (मेरे मामले में, mocha, chai और इसी तरह)। इस नई 'परीक्षण' छवि में अब दोनों परीक्षण और परीक्षण के मूल स्रोत शामिल हैं। इसके बाद इसे आसानी से चलाया जा सकता है या इसे 'घड़ी मोड' में चलाया जा सकता है, जिसमें आपके स्रोत पर मैप किए गए वॉल्यूम और होस्ट पर परीक्षण निर्देशिकाएं हो सकती हैं।

तो परीक्षण एकीकरण परीक्षणों --FOr उदाहरण हैं प्राथमिक छवि एक GraphQL सर्वर हो सकता है - तो छवि मैं बनाने के लिए, आत्म निहित है यानी, प्राथमिक छवि से प्राप्त नहीं कर रहा है (यह अभी भी होता है परीक्षण और उपकरण, ज़ाहिर है)। मेरे परीक्षण पर्यावरण चर का उपयोग करते हैं ताकि उन्हें यह पता चल सके कि परीक्षण की आवश्यकता वाले एंडपॉइंट को कहां ढूंढना है, और को प्राथमिक छवि का उपयोग करके एक कंटेनर और एकीकरण कंटेनर का उपयोग करके एक अन्य कंटेनर लाने के लिए डॉकर कंपोज़ प्राप्त करना काफी आसान है, और सेट करें पर्यावरण परिवर्तनीय ताकि परीक्षण सुइट जानता है कि परीक्षण करना क्या है।

0

कंटेनर पर वॉल्यूम माउंट के रूप में साफ परीक्षण जोड़ना यहां एक विकल्प हो सकता है। छवि बनाने के बाद, यदि परीक्षण के लिए इसे चलाया जाता है, तो साफ़ कोड के शीर्ष पर परीक्षण वाले स्रोत कोड को माउंट करें।

services: 
    tests: 
     image: my-clean-image 
     volumes: 
     - '../app:/opt/app' # Add removed tests 
संबंधित मुद्दे

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