ডকফাইফিল তৈরি করার সময়, দুটি কমান্ড রয়েছে যা আপনি এতে ফাইল / ডিরেক্টরি অনুলিপি করতে ব্যবহার করতে পারেন - ADDএবং COPY। যদিও তাদের ফাংশনের সুযোগে কিছুটা পার্থক্য রয়েছে, তারা মূলত একই কাজটি সম্পাদন করে।
সুতরাং, কেন আমাদের দুটি কমান্ড রয়েছে এবং একটি বা অন্য ব্যবহার করার সময় আমরা কীভাবে জানব?
Docker ADDকমান্ড
ADDকমান্ডটি তার চেয়ে পুরনো তা উল্লেখ করে শুরু করা যাক COPY। ডকার প্ল্যাটফর্মটি চালু হওয়ার পর থেকে ADDনির্দেশটি তার আদেশের তালিকার একটি অংশ ছিল।
কমান্ডটি নির্দিষ্ট ধারকটির একটি ফাইল সিস্টেমে ফাইল / ডিরেক্টরিগুলি অনুলিপি করে।
ADDকমান্ডের জন্য প্রাথমিক সিনট্যাক্সটি হ'ল:
ADD <src> … <dest>
<src>এটিতে যে উত্সটি আপনি অনুলিপি করতে চান তা অন্তর্ভুক্ত করে ( যেখানে আপনি এটি সংরক্ষণ করতে চান সেখানে গন্তব্য <dest>)। উত্সটি যদি ডিরেক্টরি হয় তবে এর ADDভিতরে থাকা সমস্ত কিছুই অনুলিপি করে (ফাইল সিস্টেম মেটাডেটা সহ)।
উদাহরণস্বরূপ, যদি ফাইলটি স্থানীয়ভাবে উপলব্ধ থাকে এবং আপনি এটি কোনও চিত্রের ডিরেক্টরিতে যুক্ত করতে চান তবে আপনি টাইপ করুন:
ADD /source/file/path /destination/path
ADDকোনও ইউআরএল থেকে ফাইলগুলি অনুলিপি করতে পারে। এটি একটি বাহ্যিক ফাইল ডাউনলোড করতে এবং এটি পছন্দসই গন্তব্যে অনুলিপি করতে পারে। উদাহরণ স্বরূপ:
ADD http://source.file/url /destination/path
একটি অতিরিক্ত বৈশিষ্ট্য হ'ল এটি সংকোচিত ফাইলগুলি অনুলিপি করে, স্বয়ংক্রিয়ভাবে প্রদত্ত গন্তব্যে সামগ্রীটি বের করে। এই বৈশিষ্ট্যটি কেবল স্থানীয়ভাবে সঞ্চিত সংক্ষেপিত ফাইল / ডিরেক্টরিগুলিতে প্রয়োগ হয়।
ADD source.file.tar.gz /temp
মনে রাখবেন যে আপনি কোনও URL থেকে সংকোচিত ফাইল / ডিরেক্টরি ডাউনলোড এবং বের করতে পারবেন না। স্থানীয় ফাইল সিস্টেমে অনুলিপি করার সময় কমান্ডটি বাহ্যিক প্যাকেজগুলি আনপ্যাক করে না।
Docker COPYকমান্ড
কিছু কার্যকারিতা সংক্রান্ত সমস্যার কারণে, ডকারকে সামগ্রী নকল করার জন্য একটি অতিরিক্ত কমান্ড প্রবর্তন করতে হয়েছিল - COPY।
এর ঘনিষ্ঠভাবে সম্পর্কিত ADDকমান্ডের বিপরীতে , COPYকেবলমাত্র একটি নির্দিষ্ট কার্য রয়েছে। এর ভূমিকা হ'ল ফাইল / ডিরেক্টরিগুলি তাদের বিদ্যমান ফর্ম্যাটে একটি নির্দিষ্ট স্থানে নকল করা। এর অর্থ হ'ল এটি একটি সংকোচিত ফাইলটি তোলার সাথে সম্পর্কিত নয়, বরং এটি অনুলিপি করে।
নির্দেশটি কেবল স্থানীয়ভাবে সঞ্চিত ফাইলগুলির জন্য ব্যবহার করা যেতে পারে। অতএব, আপনি আপনার ধারকটিতে বাহ্যিক ফাইলগুলি অনুলিপি করতে URL গুলি সহ এটি ব্যবহার করতে পারবেন না।
COPYনির্দেশটি ব্যবহার করতে , বেসিক কমান্ড ফর্ম্যাটটি অনুসরণ করুন:
উত্সটি টাইপ করুন এবং যেখানে আপনি আদেশটি সামগ্রীটি নিষ্কাশন করতে চান তা নিম্নরূপ:
COPY <src> … <dest>
উদাহরণ স্বরূপ:
COPY /source/file/path /destination/path
কোন আদেশটি ব্যবহার করবেন? (সেরা অনুশীলন)
COPYকমান্ডটি যে পরিস্থিতিতে প্রবর্তন করা হয়েছিল তা বিবেচনা করে , এটি স্পষ্টভাবে প্রমাণিত হয় যে পালন ADDকরা একটি প্রয়োজনীয় বিষয় ছিল। ডকার একটি অফিসিয়াল ডকুমেন্ট প্রকাশ করেছেন যা ডকফাইফিলস লেখার জন্য সর্বোত্তম অনুশীলনের রূপরেখা দেয় যা ADDকমান্ডটি ব্যবহারের বিরুদ্ধে স্পষ্টভাবে পরামর্শ দেয় ।
ডকারের অফিসিয়াল ডকুমেন্টেশন নোটগুলি যেটি COPYসর্বদা চলমান নির্দেশাবলীর চেয়ে বেশি হওয়া উচিত কারণ এটি তার চেয়ে স্বচ্ছ ADD।
আপনার যদি স্থানীয় বিল্ড প্রসঙ্গে কন্টেইনারে অনুলিপি করতে হয়, তবে ব্যবহারটি আটকে দিন COPY।
ডকার দলটি ADDইউআরএল থেকে একটি প্যাকেজ ডাউনলোড এবং অনুলিপি করতে দৃ using়ভাবে নিরুৎসাহিত করে । পরিবর্তে, RUNকমান্ডের মধ্যে উইজেট বা কার্ল ব্যবহার করা এটি নিরাপদ এবং আরও কার্যকর । এটি করার মাধ্যমে, আপনি একটি অতিরিক্ত চিত্র স্তর তৈরি করা এবং স্থান সংরক্ষণ করা এড়াতে পারেন।