কীভাবে নাম রাখবেন ডকফিলফিলস


140

আমি কীভাবে ডকফিলিলের নাম রাখব সে সম্পর্কে আমি অনিশ্চিত। গিটহাবের অনেকেই Dockerfileফাইল এক্সটেনশন ছাড়াই ব্যবহার করেন । আমি কি তাদের একটি নাম এবং এক্সটেনশন দেব; যদি তাই হয় কি? নাকি আমি কেবল তাদের ফোন করব Dockerfile?

উত্তর:


165

আপনি hub.docker.com এ অটোবিল্ডারটি ব্যবহার করতে চাইলে ডকফেরাইলের নাম পরিবর্তন করবেন না। ডকার ফাইলগুলির জন্য কোনও এক্সটেনশন ব্যবহার করবেন না, এটিকে শূন্য রেখে দিন। ফাইলের নামটি কেবলমাত্র এমন হওয়া উচিত: (কোনও এক্সটেনশন নেই)

Dockerfile

তবে আপনি নীচের মতোও করতে পারেন ...

dev.Dockerfile, uat.Dockerfile, prod.Dockerfileইত্যাদি

ভিএস কোডে আপনি ব্যবহার করতে পারেন <purpose>.Dockerfileএবং এটি অনুসারে কাজ করে।


83
আপনি যখন একই ডিরেক্টরিতে একাধিক ডকফাইল রাখবেন তখন কী হবে?
ভিজিয়ান স্কেলোরু

@ ভিজিয়ানসেক্লোড়ু যদিও ঝামেলা সামান্য হলেও আপনি প্রয়োজনে তাদের বিভিন্ন ডিরেক্টরিতে রেখে দিতে পারেন, আমি যেখানেই দেখেছি এটি ইতিমধ্যে কনভেনশন প্রতিষ্ঠিত বলে মনে হচ্ছে
orustammanapov

2
পুনঃটুইট করুন ধারণকারী ডিরেক্টরির হয়ে প্রেক্ষাপটে জন্য docker buildকমান্ড যার মানে প্রতিটি ইমেজ অযথা পুনর্নির্মিত করা হবে যদি অন্য চিত্র এর dockerfile পরিবর্তিত হয়।
থমাস

6
@ থমাস কখনও কখনও পৃথক পাত্রে সাধারণ ফাইলগুলি ভাগ করার জন্য আপনাকে একই ডিরেক্টরিতে একাধিক ডকস্পিল স্থাপন করতে হবে কারণ ডকারের প্রসঙ্গে "../some-common-stuff"
ডিভিস এল।

"ডি" কে মূলধন করতে হবে নাকি তাতে কিছু যায় আসে না?
NoName

51

dev.Dockerfile, test.Dockerfile, build.Dockerfileইত্যাদি

ভিএস কোডে আমি ব্যবহার করি <purpose>.Dockerfileএবং এটি সঠিকভাবে স্বীকৃত হয়।


27

আমার মনে হয় আপনার কাছে কনটেইনার অনুযায়ী একটি ডিরেক্টরি থাকতে হবে যাতে এতে ডকফাইফাইল (কোনও এক্সটেনশন নেই) থাকবে। উদাহরণ স্বরূপ:

  /db/Dockerfile
  /web/Dockerfile
  /api/Dockerfile

আপনি যখন ডিরেক্টরী নামটি ব্যবহার করেন কেবল তখনই ডকার ডকফাইফাইলটি খুঁজে পাবেন। উদাহরণ:

docker build -f ./db .

এটি কি আপনার উদাহরণ থেকে 3 টি ধারক তৈরি করবে?
আলভাস

@ আলভাস হ্যাঁ এটি হবে
9:52 এ গ্যারিপ করুন

4
এটি অনেক ক্ষেত্রে যথেষ্ট ভাল নয়। ডকার ফাইল আপ দেখতে পাচ্ছেন না। উদাহরণস্বরূপ, বিল্ডিং ইত্যাদি উদাহরণস্বরূপ
Cyva

আমরা কি তখন ডকার-কমপোজ কমান্ড ব্যবহার করে একসাথে এই 3 ডকার ফাইলটি চালাতে পারি?
যোগী ঘোড়াচা

16

আপনি যদি hub.docker.com এ অটোবিল্ডার ব্যবহার করতে চান তবে তা হতে হবে Dockerfile । সুতরাং সেখানে :)


3
আমি বিশ্বাস করি যে প্রশ্নের প্রসঙ্গটি আরও বিস্তৃত ছিল। এই উত্তরটিকে আরও সম্পূর্ণ করার জন্য আপনি স্বাবলিক ব্যবহার না করা ব্যক্তিদের জন্য অতিরিক্ত তথ্য অন্তর্ভুক্ত করতে পারেন।
জোশ হাবদাস

16

এটি সত্য বলে মনে হচ্ছে তবে ব্যক্তিগতভাবে এটি আমার কাছে খারাপ ডিজাইন বলে মনে হচ্ছে। অবশ্যই, একটি ডিফল্ট নাম (এক্সটেনশন সহ) রয়েছে তবে অন্যান্য নামের অনুমতি দিন এবং কমান্ডগুলির জন্য ডকার ফাইলের নাম নির্দিষ্ট করার উপায় রয়েছে।

এক্সটেনশন থাকাও দুর্দান্ত কারণ এটির সাহায্যে অ্যাপ্লিকেশনগুলিকে সেই এক্সটেনশন ধরণের সংযুক্ত করা যায়। আমি যখন ম্যাকোএসএক্স-এ একটি ডকফেরলে ক্লিক করি তখন এটি এটিকে ইউনিক্স এক্সিকিউটেবল হিসাবে বিবেচনা করে এবং এটি চালানোর চেষ্টা করে।

যদি ডকার ফাইলগুলির একটি এক্সটেনশান থাকে তবে আমি ওএসকে একটি নির্দিষ্ট অ্যাপ্লিকেশন দিয়ে শুরু করতে বলতে পারি, যেমন আমার পাঠ্য সম্পাদক অ্যাপ্লিকেশন। আমি নিশ্চিত নই তবে বর্তমান আচরণটি ফাইল অনুমতিগুলির সাথেও সম্পর্কিত হতে পারে।


15

আমি একই ডিরেক্টরিতে দুটি ডকফাইল তৈরি করেছি,

# vi one.Dockerfile
# vi two.Dockerfile

উভয় ডকফায়াইল ব্যবহার করার জন্য,

# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile

দ্রষ্টব্য: আপনার বর্তমান কার্যক্ষম ডিরেক্টরি হতে হবে ..


10

আমি কি তাদের একটি নাম এবং এক্সটেনশন দেব; যদি তাই হয় কি?

আপনার পছন্দ মতো আপনার ডকফায়িল্সের নাম রাখতে পারেন। ডিফল্ট ফাইলের নামটি Dockerfile(কোনও এক্সটেনশন ছাড়াই), এবং ডিফল্ট ব্যবহার করা পাত্রে কাজ করার সময় বিভিন্ন কাজকে আরও সহজ করে তুলতে পারে।

আপনার নির্দিষ্ট প্রয়োজনীয়তার উপর নির্ভর করে আপনি ফাইলের নাম পরিবর্তন করতে পারেন। উদাহরণস্বরূপ, আপনি যদি একাধিক আর্কিটেকচারের জন্য বিল্ডিং করেন তবে আপনি আর্কিটেকচারকে নির্দেশ করে একটি এক্সটেনশন যুক্ত করতে ইচ্ছুক হতে পারেন কারণ রেজন.আইও টিম তাদের মাল্টি-কনটেইনার এআরএম উদাহরণ HAProxy ধারকটির জন্য করেছে :

Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi

প্রদত্ত উদাহরণে, প্রতিটি ডকফেরফাইল একটি পৃথক, আর্কিটেকচার-নির্দিষ্ট, উজানের চিত্র থেকে তৈরি করে। নির্দিষ্ট Dockerfile বিল্ড ব্যবহার করার জন্য ব্যবহার নির্দিষ্ট করা যেতে পারে --file, -fবিকল্প যখন কমান্ড লাইন ব্যবহার করে আপনার ধারক বিল্ডিং।


1
আমি আর্কিটেকচার (বা যাই হোক না কেন) নির্দেশ করতে একটি এক্সটেনশন ব্যবহার করতে চাই। অন্য কয়েকটি উত্তরের বিপরীতে, সমস্ত ডকফিলফিলস একটি বড়, বিশৃঙ্খল ডিরেক্টরিতে সন্ধান করার জন্য মরে গেছে; তারা স্বাভাবিকভাবে একত্রিত।
মাইক শেরিল 'ক্যাট রিকল'

3

Dockerfileআপনার যদি কেবলমাত্র একটি ডকার ফাইল (প্রতি ডিরেক্টরি) থাকে তবে ভাল। একই ডিরেক্টরিতে যদি আপনার একাধিক ডকার ফাইলের প্রয়োজন হয় তবে আপনি যা মানক চান তা ব্যবহার করতে পারেন - যদি আপনার কোনও ভাল কারণ থাকে। সাম্প্রতিক প্রকল্পে AWS ডকার ফাইল এবং স্থানীয় দেব পরিবেশ ফাইলগুলি ছিল কারণ পরিবেশের যথেষ্ট পরিমাণে পার্থক্য ছিল:

Dockerfile Dockerfile.aws


আর্কিটেকচার নির্দিষ্ট করার জন্যও আমি এই পদ্ধতিটি দেখেছি। উদাহরণস্বরূপ, ক এর Dockerfile.armv7hfপরবর্তী স্থাপন করা Dockerfile.i386
জোশ হাবদাস

1

ডকফাইফাইল (কাস্টম নাম এবং ফোল্ডার):

   docker/app.Dockerfile
   docker/nginx.Dockerfile

বিল্ড:

   docker build  -f ./docker/app.Dockerfile .
   docker build  -f ./docker/nginx.Dockerfile .
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.