ডকফাইফিল তৈরি করার সময়, দুটি কমান্ড রয়েছে যা আপনি এতে ফাইল / ডিরেক্টরি অনুলিপি করতে ব্যবহার করতে পারেন - 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
কমান্ডের মধ্যে উইজেট বা কার্ল ব্যবহার করা এটি নিরাপদ এবং আরও কার্যকর । এটি করার মাধ্যমে, আপনি একটি অতিরিক্ত চিত্র স্তর তৈরি করা এবং স্থান সংরক্ষণ করা এড়াতে পারেন।