ডকরে ডিরেক্টরি কমান্ড পরিবর্তন করবেন?


214

ডকারে আমি এটি করতে চাই:

git clone XYZ
cd XYZ
make XYZ

তবে কোনও সিডি কমান্ড না থাকায় আমাকে পুরো সময়টি পাস করতে হবে (এক্সওয়াইজেড / ফুলপথ তৈরি করুন)। এর জন্য কোন ভাল সমাধান?


সম্পর্কিত: stackoverflow.com/questions/17891669/...
trcarden

6
ওয়ার্কডির কমান্ডটি সম্ভবত একটি সম্ভাব্য কাজ হিসাবে চিহ্নিত হয়েছে
ট্র্যাকডার্ড

উত্তর:


151

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

RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
    rm -f treeio.zip && cd treeio && pip install -r requirements.pip

'&& 'ব্যবহারের কারণে, পূর্ববর্তী সমস্ত কমান্ড সফল হলে এটি কেবল চূড়ান্ত' পাইপ ইনস্টল 'কমান্ডটি পাবে।

প্রকৃতপক্ষে, যেহেতু প্রতিটি আরএন একটি নতুন কমিট তৈরি করে এবং (বর্তমানে) একটি এউএফএস স্তর তৈরি করে, আপনার যদি ডকফাইফিলের মধ্যে অনেকগুলি কমান্ড থাকে, আপনি সীমাটি ব্যবহার করবেন, সুতরাং আরএনএসগুলি (ফাইলটি স্থিতিশীল থাকাকালীন) মার্জ করা খুব কার্যকর হতে পারে দরকারী জিনিস।


98
আপনি যদি ভাবছেন তবে cdএকমাত্র এর প্রভাব বর্তমান RUNকমান্ডের জন্যই স্থায়ী । পরবর্তীটি RUNবর্তমান থেকে শুরু হবে WORKDIR
রিচি 6

530

অন্য ডিরেক্টরিতে পরিবর্তন করতে WORKDIR ব্যবহার করুন । ওয়ার্কডিরের পরে সমস্ত আরএন, সিএমডি এবং ENTRYPOINT কমান্ডগুলি সেই ডিরেক্টরি থেকে কার্যকর করা হবে।

RUN git clone XYZ 
WORKDIR "/XYZ"
RUN make

40
ওয়ার্কডির ব্যবহারকে ডকফাইফাইল সেরা অভ্যাস
মার্টিন উলস্টেনহুলমে

14
আমি বিশ্বাস করি এটি প্রশ্নের আরও উপযুক্ত উত্তর
হুয়ান লেনি

1
নোট করুন যে এটি একাধিক স্তর তৈরি করে (আমি মনে করি?)
সেবি

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। পরীক্ষিত এবং এটি কাজ করে তা নিশ্চিত করতে পারে
ব্যবহারকারী 1258361

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