डेमन से त्रुटि प्रतिक्रिया: वर्तमान संदर्भ में कोई मंच नहीं


111

मैं kvm के साथ एक कंटेनर चलाने की कोशिश कर रहा था, मुझे यहां मिले कोड का उपयोग करके: https://github.com/jessfraz/dockerfiles/tree/master/kvm मैंने एक नई निर्देशिका बनाई, उसमें cd'd और dockerfile और बनाया start.sh फाइलें। जब मैंने निर्माण का आदेश दिया, तो उसने निम्न त्रुटि संदेश का उत्पादन किया:

डॉकर डेमन 3.584kB के लिए संदर्भ भेजना डेमन से त्रुटि प्रतिक्रिया: वर्तमान संदर्भ में कोई बिल्ड स्टेज नहीं

मुझे नहीं पता कि इसका क्या मतलब है और मैं इसका जवाब नहीं दे सकता। किसी भी तरह की सहायता का स्वागत किया जाएगा।

जवाबों:


205

क्या आपके dockerfile में एक है: FROM repo/image

पहली पंक्ति के रूप में? मुझे यह त्रुटि तब मिली जब मैं उस डॉकटर छवि को निर्दिष्ट करना भूल गया जिसे मैं निर्माण कर रहा था।

यहां तक ​​कि अगर आप एक "स्रोत छवि" का निर्माण कर रहे हैं, तो भी आपको FROM scratchडॉकफाइल की पहली पंक्ति के रूप में निर्दिष्ट करने की आवश्यकता है ।


20
मुझे यह समस्या थी क्योंकि मैं FROM कमांड से पहले डेबियन फ्रंटेंड के लिए ENV सेट कर रहा था। धन्यवाद!
adamconkey

6
@adamconkey एक विशेष मामला है जहां आपको FROM से पहले ARG की अनुमति है। यह केवल एक चीज है जो FROM से पहले होने की अनुमति है। इसके बारे में कुछ और जानकारी यहाँ दी गई है: docs.docker.com/engine/reference/builder/…
पॉल डीजेन

जरूरी नहीं कि यह सबसे पहले हो। यह सिर्फ पहली गैर-टिप्पणी पंक्ति है। स्पष्टीकरण के साथ आधिकारिक दस्तावेज के लिंक के लिए मेरे उत्तर की जांच करें।
NoBrainer

@NoBrainer कंप्यूटर प्रोग्रामिंग में, "पहली पंक्ति" शब्द लगभग हमेशा पहली गैर-टिप्पणी लाइन को संदर्भित करता है।
पॉल डेजन

@PaDDjjean Docker सिस्टम प्रशासन है, न कि "कंप्यूटर प्रोग्रामिंग"। ;-)
NoBrainer

34

यह आमतौर पर उस पाठ के कारण होता है जो FROM कमांड से पहले लिखा जाता है। अपने dockerfile में टिप्पणियों को हटाने का प्रयास करें और फिर से बनाएं।

संदर्भ के लिए https://github.com/moby/buildkit/issues/164


1
यह वास्तव में मेरा मुद्दा था, किसी कारण से यहां तक ​​कि जिस चीज पर मैंने टिप्पणी की थी वह इस त्रुटि को फेंकने का कारण बन रही थी। मैंने यह सब हटा दिया और अब ठीक काम करता है।
jamescampbell

टिप्पणियों से मुझे कोई समस्या नहीं हुई। स्पष्टीकरण के साथ आधिकारिक दस्तावेज के लिंक के लिए मेरे उत्तर की जांच करें।
NoBrainer

17

यह संदेश तब प्रकट होता है जब आप घोषित ENVकरने से पहले पर्यावरण चर ( ) घोषित करते हैंFROM

उदाहरण के लिए:

# Define variables.
ARG PORT
ENV SERVER_PORT=$PORT

# Install minimal Python 3.
FROM python:3.7-alpine

# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt

# Copy app source code.
COPY src/ /app
...

इसे हल करने के लिए, घोषणाओं को स्वैप करें ताकि किसी भी पर्यावरण चर के बाद सेट हो जाएं FROM

# Install minimal Python 3.
FROM python:3.7-alpine

# Define variables.
ARG PORT
ENV SERVER_PORT=${PORT}

# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt

# Copy app source code.
COPY src/ /app
...

16

Docs.docker.com पर प्रलेखन के अनुसार , आपके डॉकरफाइल की पहली गैर-टिप्पणी लाइन होना चाहिए FROM। डॉक्स को उद्धृत करने के लिए:

FROMअनुदेश एक नए निर्माण मंच initializes और सेट बेस छवि बाद में निर्देश के लिए। जैसे, एक वैध Dockerfileको एक FROMनिर्देश के साथ शुरू करना चाहिए ।


FROM anyBaseImageया तो उपयोग करें या उपयोग करेंFROM scratch
ahmednabil88

12

समस्या हल हो गई है। जब मैं कोड को संपादित करने के लिए dockerfile पर गया तो मैंने देखा कि मैंने गलती से पहली पंक्ति को असहज कर दिया था। बेवकूफ गलती, मुझे पता है। मदद के लिए आप दोनों को धन्यवाद।


6

मेरी भी यही समस्या थी! क्या मुझे मदद मिली लिए किया गया था है FROMफ़ाइल में पहली आदेश के रूप में कमान :

BAD :

MAINTAINER your name "your@email.com"
FROM dockerimagename

अच्छा :

FROM dockerimagename
MAINTAINER your name "your@email.com"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.