2015-05-25 6 views
7

Dockerfile में लाइन काम नहीं करता है के बाद:डॉकरफाइल रन में पाइप (ioredirection) का उपयोग कैसे करें?

RUN git archive master | tar -x -C /path 

त्रुटि संदेश:

fatal: Not a valid object name 
tar: This does not look like a tar archive 
tar: Exiting with failure status due to previous errors 

कैसे इस समस्या को हल करने के लिए?

+2

निम्नलिखित भिन्नता के बारे में: 'git archive master | टैर एक्सएफ - -सी/पथ'? और यदि यह विफल हो जाता है, तो क्या आप सत्यापित कर सकते हैं कि 'गिट आर्काइव' वास्तव में जिस तरह से आप 'git archive master --output =/tmp/path.tar' जैसी चीज़ों से अपेक्षा करते हैं? –

+0

मैंने वॉनसी के समाधानों की कोशिश की, अभी भी डॉकरफाइल रन में पाइप का उपयोग करने में सक्षम नहीं है। ऐसा लगता है कि डॉकरफाइल इस पर अच्छा प्रदर्शन नहीं कर रहा है। एक टैट फ़ाइल में गिट आर्काइव - आउटपुट का उपयोग करना, और फिर 'tar -xf /path/to/file.tar -C/path/to/extract' इस समस्या के आसपास एक कार्य है। –

+0

मैं अपनी टिप्पणी को एक उत्तर में बदल दूंगा - कृपया स्वीकृत के रूप में चिह्नित करें। –

उत्तर

2

निम्नलिखित भिन्नता के बारे में: git archive master | tar xf - -C /path?

+0

यह पूरी तरह से काम करता है। धन्यवाद! :) –

1

आप एक sh -c आदेश की कोशिश कर सकते

RUN sh -c 'git archive master | tar -x -C /path' 

यदि नहीं, तो आप एक स्क्रिप्ट में है कि आदेश शामिल कर सकते हैं, स्क्रिप्ट को कॉपी करें और चलाते हैं।

0

ऐसा लगता है कि इस मुद्दे को अपने Git भंडार (या निर्देशिका आपके RUN में क्रियान्वित किया जाता है) के साथ वास्तव में क्या है:

fatal: Not a valid object name 

यह त्रुटि Git से आ रही है और पता चलता है कि वहाँ कोई शाखा master नामित है कि।

+0

हां। यह सच है। मैंने गिट रेपो को सही फ़ोल्डर में क्लोन नहीं किया था। मैंने इसे ठीक किया, लेकिन पाइप काम नहीं कर रहे मुद्दे अभी भी मौजूद हैं। –

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