ডকার ইনভালাইড রেফারেন্স ফরম্যাট

Dakara Inabhala Ida Repharensa Pharamyata



ডকার ইমেজ বা ডকারফাইলের সাথে কাজ করার সময়, আপনি 'অবৈধ রেফারেন্স ফর্ম্যাট' ত্রুটির সম্মুখীন হতে পারেন।

এই টিউটোরিয়ালে, আমরা শিখব যে এই ত্রুটির অর্থ কী, কেন এটি ঘটে এবং আপনি কীভাবে এটি আপনার ডকার ব্যবহারে সমাধান করতে পারেন।

ডকারে একটি ইমেজ রেফারেন্স কি?

ডকারে, একটি চিত্রের রেফারেন্স ডকার রেজিস্ট্রি (ডকার হাব) বা স্থানীয় ডকার হোস্টের মধ্যে একটি নির্দিষ্ট ডকার চিত্র সনাক্তকরণ এবং সনাক্ত করার একটি পদ্ধতিকে বোঝায়।







ডিফল্টরূপে, ছবির রেফারেন্স দুটি প্রধান উপাদান নিয়ে গঠিত:



সংগ্রহস্থল - প্রথম অংশটি লক্ষ্য চিত্রের জন্য সংগ্রহস্থলকে সংজ্ঞায়িত করে। এটি ডকার ইমেজের জন্য শীর্ষ-স্তরের সাংগঠনিক ইউনিট, প্রধানত প্রতিষ্ঠান বা ব্যক্তিকে চিত্র পরিচালনার প্রতিনিধিত্ব করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি Microsoft/SQL-সার্ভার নামে একটি চিত্র খুঁজে পেতে পারেন। এই ক্ষেত্রে, প্রথম অংশটি ইমেজ বজায় রাখার সংস্থার প্রতিনিধিত্ব করে।



ট্যাগ - একটি চিত্রের দ্বিতীয় অংশ হল একটি লেবেল যা সংগ্রহস্থলের মধ্যে থাকা ছবির নির্দিষ্ট সংস্করণ বা রূপের সাথে যুক্ত। ইমেজ ট্যাগ একই ইমেজের বিভিন্ন সংস্করণ, ভিন্ন রিলিজ, বা ভিন্ন সামঞ্জস্যতা উপস্থাপন করতে পারে। উদাহরণস্বরূপ, nginx এর ছবিতে:latest যেখানে সর্বশেষ ট্যাগটি Nginx ছবির সর্বশেষ সংস্করণকে নির্দেশ করে।





একটি ডকারফাইল বা ডকার কমান্ডে চিত্রটি নির্দিষ্ট করার সময়, চিত্রের নাম অবশ্যই নিম্নলিখিত নামকরণের নিয়মগুলি অনুসরণ করবে:

  • সংগ্রহস্থলের নাম ছোট হাতের হওয়া উচিত।
  • রেজিস্ট্রির মধ্যে সংগঠন বা গ্রুপিং নির্দেশ করার জন্য সংগ্রহস্থলে অক্ষর, সংখ্যা, হাইফেন (-), আন্ডারস্কোর (_), বা ফরোয়ার্ড স্ল্যাশ (/) থাকতে পারে।
  • ছবির নামে কোনো হোয়াইটস্পেস অক্ষর (স্পেস বা ট্যাব) থাকা উচিত নয়।

ডকার অবৈধ রেফারেন্স বিন্যাস

ডকারফাইল বা ডকার কমান্ড চালানোর সময় আপনি যখন 'অবৈধ রেফারেন্স বিন্যাস' ত্রুটি পান, তখন এর অর্থ আপনার নাম উপরের নিয়মগুলি মেনে চলেনি।



একটি উদাহরণ দেখানো হয়েছে:

$ ডকার টান BusyBox

যদি আমরা উপরের কমান্ডটি চালাই, এটি দেখানো হিসাবে একটি ত্রুটি ফিরিয়ে দেবে:

অবৈধ রেফারেন্স বিন্যাস: সংগ্রহস্থলের নাম ছোট হাতের হতে হবে

এই ক্ষেত্রে, এটি আমাদের বলে যে ছবির নামের বিন্যাসটি ভুল, কারণ ছবির নাম সর্বদা ছোট হাতের হওয়া উচিত।

ডকার অবৈধ রেফারেন্স বিন্যাস ত্রুটি কিভাবে ঠিক করবেন

আপনি অনুমান করতে পারেন, প্রথম পদ্ধতিটি নিশ্চিত করা হচ্ছে ছবির রেফারেন্স বিন্যাসটি সঠিক। এতে ছবির নাম বৈধ কিনা তা যাচাই করা অন্তর্ভুক্ত।

উদাহরণস্বরূপ, উপরের কমান্ডে, আমরা ইমেজের নাম উল্লেখ করে ত্রুটিটি ঠিক করতে পারি:

$ sudo docker pull busybox: সর্বশেষ

এই ক্ষেত্রে, কমান্ডটি Busybox চিত্রের সর্বশেষ সংস্করণটি টানতে হবে।

পদ্ধতি 2 - লং ডকার কমান্ড বিভক্ত করুন

কিছু অন্যান্য ক্ষেত্রে, আপনি একটি দীর্ঘ ডকার কমান্ড চালানোর সময় 'অবৈধ রেফারেন্স বিন্যাস' ত্রুটির সম্মুখীন হতে পারেন।

এই ধরনের ক্ষেত্রে, কমান্ডটিকে একাধিক লাইনে বিভক্ত করা ভাল অনুশীলন। কমান্ড বিভাজনের পদ্ধতি আপনার শেল এবং সিস্টেমের উপর নির্ভর করবে।

  • যাইহোক, ব্যাশ শেলের জন্য, মাল্টিলাইন এস্কেপ ক্যারেক্টার বা ব্যাকস্ল্যাশ (\) ব্যবহার করুন।
  • পাওয়ারশেলের জন্য, আপনি ব্যাকটিক অক্ষর (`) ব্যবহার করতে পারেন।
  • অবশেষে, আপনি যদি কমান্ড প্রম্পটে থাকেন, আপনি একটি ক্যারেট অক্ষর ^ হিসাবে ব্যবহার করতে পারেন

উদাহরণস্বরূপ, Bash-এ, এইভাবে কমান্ডটি চালান:

$ sudo ডকার বিল্ড \

-এটা \

ব্যস্তবক্স \

পাওয়ারশেলে, আপনি দেখানো কমান্ডটি চালাতে পারেন:

$ sudo ডকার বিল্ড `

-এটা `

ব্যস্তবক্স `

এবং সবশেষে, আপনি যদি কমান্ড প্রম্পটে থাকেন, দেখানো হিসাবে কমান্ডটি ব্যবহার করুন:

$ sudo ডকার বিল্ড ^

-এটা ^

ব্যস্তবক্স ^

পদ্ধতি 3 – ${pwd} এবং $(pwd) পথ

এই ত্রুটির আরেকটি সাধারণ কারণ হল ${pwd} ভেরিয়েবল ব্যবহার করার সময়। আপনি উল্লিখিত কমান্ডটি যে ধরনের শেলের উপর নির্ভর করে এটি দ্বন্দ্ব সৃষ্টি করতে পারে।

PowerShell এর ক্ষেত্রে, আপনাকে $(pwd) এর পরিবর্তে ${pwd} ভেরিয়েবল ব্যবহার করতে হবে।

আপনি অনুমান করতে পারেন, ব্যাশের ক্ষেত্রে, $(pwd) হিসাবে কোঁকড়া-বন্ধনী ইনপুটের পরিবর্তে বন্ধনী বিন্যাসটি ব্যবহার করুন।

উপসংহার

এই পোস্টটি ডকারফাইল বা ডকার কমান্ডের সাথে কাজ করার সময় 'অবৈধ রেফারেন্স বিন্যাস' এর প্রধান কারণগুলি নিয়ে আলোচনা করেছে। এছাড়াও আমরা তিনটি প্রধান পদ্ধতি অন্বেষণ করেছি যা আপনি এই সমস্যাটি সমাধান করতে ব্যবহার করতে পারেন৷