আমি কীভাবে ডকফিলিলের নাম রাখব সে সম্পর্কে আমি অনিশ্চিত। গিটহাবের অনেকেই Dockerfile
ফাইল এক্সটেনশন ছাড়াই ব্যবহার করেন । আমি কি তাদের একটি নাম এবং এক্সটেনশন দেব; যদি তাই হয় কি? নাকি আমি কেবল তাদের ফোন করব Dockerfile
?
আমি কীভাবে ডকফিলিলের নাম রাখব সে সম্পর্কে আমি অনিশ্চিত। গিটহাবের অনেকেই Dockerfile
ফাইল এক্সটেনশন ছাড়াই ব্যবহার করেন । আমি কি তাদের একটি নাম এবং এক্সটেনশন দেব; যদি তাই হয় কি? নাকি আমি কেবল তাদের ফোন করব Dockerfile
?
উত্তর:
আপনি hub.docker.com এ অটোবিল্ডারটি ব্যবহার করতে চাইলে ডকফেরাইলের নাম পরিবর্তন করবেন না। ডকার ফাইলগুলির জন্য কোনও এক্সটেনশন ব্যবহার করবেন না, এটিকে শূন্য রেখে দিন। ফাইলের নামটি কেবলমাত্র এমন হওয়া উচিত: (কোনও এক্সটেনশন নেই)
Dockerfile
তবে আপনি নীচের মতোও করতে পারেন ...
dev.Dockerfile
, uat.Dockerfile
, prod.Dockerfile
ইত্যাদি
ভিএস কোডে আপনি ব্যবহার করতে পারেন <purpose>.Dockerfile
এবং এটি অনুসারে কাজ করে।
docker build
কমান্ড যার মানে প্রতিটি ইমেজ অযথা পুনর্নির্মিত করা হবে যদি অন্য চিত্র এর dockerfile পরিবর্তিত হয়।
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
ইত্যাদি
ভিএস কোডে আমি ব্যবহার করি <purpose>.Dockerfile
এবং এটি সঠিকভাবে স্বীকৃত হয়।
আমার মনে হয় আপনার কাছে কনটেইনার অনুযায়ী একটি ডিরেক্টরি থাকতে হবে যাতে এতে ডকফাইফাইল (কোনও এক্সটেনশন নেই) থাকবে। উদাহরণ স্বরূপ:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
আপনি যখন ডিরেক্টরী নামটি ব্যবহার করেন কেবল তখনই ডকার ডকফাইফাইলটি খুঁজে পাবেন। উদাহরণ:
docker build -f ./db .
আপনি যদি hub.docker.com এ অটোবিল্ডার ব্যবহার করতে চান তবে তা হতে হবে Dockerfile
। সুতরাং সেখানে :)
এটি সত্য বলে মনে হচ্ছে তবে ব্যক্তিগতভাবে এটি আমার কাছে খারাপ ডিজাইন বলে মনে হচ্ছে। অবশ্যই, একটি ডিফল্ট নাম (এক্সটেনশন সহ) রয়েছে তবে অন্যান্য নামের অনুমতি দিন এবং কমান্ডগুলির জন্য ডকার ফাইলের নাম নির্দিষ্ট করার উপায় রয়েছে।
এক্সটেনশন থাকাও দুর্দান্ত কারণ এটির সাহায্যে অ্যাপ্লিকেশনগুলিকে সেই এক্সটেনশন ধরণের সংযুক্ত করা যায়। আমি যখন ম্যাকোএসএক্স-এ একটি ডকফেরলে ক্লিক করি তখন এটি এটিকে ইউনিক্স এক্সিকিউটেবল হিসাবে বিবেচনা করে এবং এটি চালানোর চেষ্টা করে।
যদি ডকার ফাইলগুলির একটি এক্সটেনশান থাকে তবে আমি ওএসকে একটি নির্দিষ্ট অ্যাপ্লিকেশন দিয়ে শুরু করতে বলতে পারি, যেমন আমার পাঠ্য সম্পাদক অ্যাপ্লিকেশন। আমি নিশ্চিত নই তবে বর্তমান আচরণটি ফাইল অনুমতিগুলির সাথেও সম্পর্কিত হতে পারে।
আমি একই ডিরেক্টরিতে দুটি ডকফাইল তৈরি করেছি,
# vi one.Dockerfile
# vi two.Dockerfile
উভয় ডকফায়াইল ব্যবহার করার জন্য,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
দ্রষ্টব্য: আপনার বর্তমান কার্যক্ষম ডিরেক্টরি হতে হবে ..
আমি কি তাদের একটি নাম এবং এক্সটেনশন দেব; যদি তাই হয় কি?
আপনার পছন্দ মতো আপনার ডকফায়িল্সের নাম রাখতে পারেন। ডিফল্ট ফাইলের নামটি Dockerfile
(কোনও এক্সটেনশন ছাড়াই), এবং ডিফল্ট ব্যবহার করা পাত্রে কাজ করার সময় বিভিন্ন কাজকে আরও সহজ করে তুলতে পারে।
আপনার নির্দিষ্ট প্রয়োজনীয়তার উপর নির্ভর করে আপনি ফাইলের নাম পরিবর্তন করতে পারেন। উদাহরণস্বরূপ, আপনি যদি একাধিক আর্কিটেকচারের জন্য বিল্ডিং করেন তবে আপনি আর্কিটেকচারকে নির্দেশ করে একটি এক্সটেনশন যুক্ত করতে ইচ্ছুক হতে পারেন কারণ রেজন.আইও টিম তাদের মাল্টি-কনটেইনার এআরএম উদাহরণ HAProxy ধারকটির জন্য করেছে :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
প্রদত্ত উদাহরণে, প্রতিটি ডকফেরফাইল একটি পৃথক, আর্কিটেকচার-নির্দিষ্ট, উজানের চিত্র থেকে তৈরি করে। নির্দিষ্ট Dockerfile বিল্ড ব্যবহার করার জন্য ব্যবহার নির্দিষ্ট করা যেতে পারে --file, -f
বিকল্প যখন কমান্ড লাইন ব্যবহার করে আপনার ধারক বিল্ডিং।
Dockerfile
আপনার যদি কেবলমাত্র একটি ডকার ফাইল (প্রতি ডিরেক্টরি) থাকে তবে ভাল। একই ডিরেক্টরিতে যদি আপনার একাধিক ডকার ফাইলের প্রয়োজন হয় তবে আপনি যা মানক চান তা ব্যবহার করতে পারেন - যদি আপনার কোনও ভাল কারণ থাকে। সাম্প্রতিক প্রকল্পে AWS ডকার ফাইল এবং স্থানীয় দেব পরিবেশ ফাইলগুলি ছিল কারণ পরিবেশের যথেষ্ট পরিমাণে পার্থক্য ছিল:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
পরবর্তী স্থাপন করা Dockerfile.i386
।