ডিমন থেকে ত্রুটির প্রতিক্রিয়া: বর্তমান প্রসঙ্গে কোনও বিল্ড স্টেজ নেই


111

আমি এখানে পাওয়া কোডটি ব্যবহার করে কেভিএম দিয়ে একটি ধারক চালানোর চেষ্টা করছিলাম: https://github.com/jessfraz/dockerfiles/tree/master/kvm আমি একটি নতুন ডিরেক্টরি তৈরি করেছি, এতে সিডি করব এবং ডকফায়াইল তৈরি করেছি এবং start.sh ফাইল। আমি যখন নির্মাণের আদেশ দিয়েছি, এটি নিম্নলিখিত ত্রুটি বার্তাকে ছাড়িয়ে গেছে:

ডকার ডেমনকে বিল্ড প্রসঙ্গটি পাঠানো হচ্ছে 3.584 কেবি ডেমনের ত্রুটির প্রতিক্রিয়া: বর্তমান প্রসঙ্গে কোনও বিল্ড স্টেজ নেই

এর অর্থ কী তা আমার কোনও ধারণা নেই এবং আমি কোনও উত্তর গুগল করতে পারি না। কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে।

উত্তর:


206

আপনার ডকফায়াইল একটি আছে: FROM repo/image

প্রথম লাইন হিসাবে? আমি এই ত্রুটিটি পেয়েছি যখন আমি তৈরি করা ডক ইমেজটি নির্দিষ্ট করতে ভুলে গিয়েছিলাম।

এমনকি যদি আপনি একটি "উত্স চিত্র" তৈরি করছেন তবে আপনাকে এখনও FROM scratchডকফাইলের প্রথম লাইন হিসাবে নির্দিষ্ট করতে হবে ।


21
আমার এই সমস্যা হয়েছিল কারণ আমি FROM কমান্ডের আগে ডেবিয়ান ফ্রন্টএন্ডের জন্য ENV স্থাপন করছিলাম। ধন্যবাদ!
অ্যাডামকনকি

6
@ অ্যাডামকনিকে একটি বিশেষ ক্ষেত্রে রয়েছে যেখানে আপনাকে কোনও এফআরএমের আগে এআরজি রাখার অনুমতি দেওয়া হয়। এটাই একমাত্র জিনিস যা FROM এর আগে থাকার অনুমতি দেওয়া হয়েছিল। সে সম্পর্কে আরও কিছু তথ্য এখানে রইল
পল

এটি অগত্যা প্রথম সারির লাইন নয়। এটি সবেমাত্র প্রথম অ-মন্তব্য করার লাইন হয়ে উঠেছে। একটি ব্যাখ্যা সহ অফিসিয়াল ডকুমেন্টেশনের লিঙ্কের জন্য আমার উত্তরটি দেখুন।
NoBrainer

@ নোব্রেনার কম্পিউটার প্রোগ্রামিংয়ে, "প্রথম লাইন" শব্দটি প্রায়শই সর্বদা প্রথম মন্তব্য না করার রেখাটিকে বোঝায়।
পল দেজন

@ পলডিজান ডকার হ'ল "কম্পিউটার প্রোগ্রামিং" নয়, সিস্টেম প্রশাসন। ;-)
NoBrainer

36

এটি সাধারণত FROM কমান্ডের আগে লেখা পাঠ্যের কারণে ঘটে। আপনার ডকফাইলে মন্তব্যগুলি সরিয়ে আবার চেষ্টা করুন।

রেফারেন্সের জন্য https://github.com/moby/buildkit/issues/164


4
এটি আমার সমস্যাটি হ'ল, কিছু কারণে এমনকি আমার মন্তব্য করা জিনিসগুলিও এই ত্রুটিটি ছুঁড়ে ফেলার কারণ করেছিল। আমি এগুলি সব সরিয়েছি এবং এখন ঠিকঠাক কাজ করছি।
জামেস্ক্যাম্বেল

মন্তব্যগুলি আমাকে কোনও সমস্যা দেয় না। একটি ব্যাখ্যা সহ অফিসিয়াল ডকুমেন্টেশনের লিঙ্কের জন্য আমার উত্তরটি দেখুন।
NoBrainer

18

আপনি যখন পরিবেশের পরিবর্তনশীল ঘোষণা করেন তখন এই বার্তাটি উপস্থিত হয় (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

ডকস.ডোকার.কমের ডকুমেন্টেশন অনুসারে , আপনার ডকফাইফাইলের প্রথম অ-মন্তব্য লাইনটি অবশ্যই FROMলাইন হতে হবে । দস্তাবেজগুলি উদ্ধৃত করতে:

FROMনির্দেশ একটি নতুন বিল্ড পর্যায় সূচনা এবং সেট বেজ ভাবমূর্তি পরবর্তী নির্দেশের জন্য। যেমন, একটি বৈধ Dockerfileঅবশ্যই একটি FROMনির্দেশনা দিয়ে শুরু করা উচিত ।


হয় ব্যবহার করুন FROM anyBaseImageবা ব্যবহার করুনFROM scratch
ahmednabil88

12

সমস্যা সমাধান করা হয়। আমি যখন কোডটি সম্পাদনা করতে ডকফাইলে গেছি তখন আমি লক্ষ্য করেছি যে আমি প্রথম লাইনে দুর্ঘটনাক্রমে কোনও অসুবিধা করেছি। বোকা ভুল, আমি জানি। সাহায্যের জন্য উভয়কে ধন্যবাদ।


6

আমারও একই প্রশ্ন ছিল! কি আমাকে সাহায্য করেন আছে FROMফাইলের প্রথম কমান্ড হিসাবে কমান্ড :

খারাপ :

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

ভাল :

FROM dockerimagename
MAINTAINER your name "your@email.com"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.