buildkit · Docker
संदेश
failed to solve: process "/bin/sh -c npm ci" did not complete successfully: exit code: 1
इसका मतलब
आपके Dockerfile की वह RUN पंक्ति शून्य से भिन्न स्थिति के साथ ख़त्म हुई। इस पंक्ति में इतना ही है कि कौन सा आदेश विफल हुआ और किस कोड से; असली कारण ऊपर उसी आदेश के output में है, जिसे BuildKit चरण पूरा होते ही समेट देता है। docker build --progress=plain से दोबारा चलाने पर हर चरण का पूरा output छपता है, और अगर कोई cache की परत पुरानी विफलता छिपा रही है तो --no-cache भी जोड़ें — क़ीमत यह कि सब कुछ पहले चरण से फिर बनता है। exit code: 1 कारण नहीं है, केवल यह तथ्य कि आदेश विफल हुआ।
सुधार
docker build --progress=plain --no-cache .- कौन देता है
- buildkit
- Docker
- 12
docker की त्रुटियाँ तभी पढ़ी जाती हैं जब आप उन्हें परत के हिसाब से बाँट लें — client का daemon तक न पहुँचना, registry का मना करना, build के दौरान किसी RUN का विफल होना, और container का चालू होते ही मर जाना — ये चार अलग समस्याएँ हैं; और build तथा चलने की परतों में पंक्ति स्वयं कारण नहीं होती: कारण उस आदेश के output में होता है जो भीतर चल रहा था, और हर उपाय की क़ीमत भी परत के अनुसार बदलती है।
एरर संदेश कैसे पढ़ें
- पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
- फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
- संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
- वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
- कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।
अक्सर पूछे जाने वाले सवाल
Q. “failed to solve: process "/bin/sh -c npm ci" did not complete successfully: exit code: 1” का क्या मतलब है?
आपके Dockerfile की वह RUN पंक्ति शून्य से भिन्न स्थिति के साथ ख़त्म हुई। इस पंक्ति में इतना ही है कि कौन सा आदेश विफल हुआ और किस कोड से; असली कारण ऊपर उसी आदेश के output में है, जिसे BuildKit चरण पूरा होते ही समेट देता है। docker build --progress=plain से दोबारा चलाने पर हर चरण का पूरा output छपता है, और अगर कोई cache की परत पुरानी विफलता छिपा रही है तो --no-cache भी जोड़ें — क़ीमत यह कि सब कुछ पहले चरण से फिर बनता है। exit code: 1 कारण नहीं है, केवल यह तथ्य कि आदेश विफल हुआ।
Q. इसे कैसे ठीक करें?
docker build --progress=plain --no-cache . — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।
Q. यह कौन-सा औज़ार देता है?
buildkit। यह Docker में आता है, और संदेश 15 शब्दों का है।