Apk অ্যাড - ভার্চুয়াল কমান্ডের জন্য বিল্ড-ডেপস কী?


140

কি .build-depsনিম্নলিখিত কমান্ড কি? আমি আলপাইন ডক্সে কোনও ব্যাখ্যা খুঁজে পাচ্ছি না। এটি কি এমন একটি ফাইল যা পূর্বনির্ধারিত? এটি অনেক ডকফায়াইলগুলিতে রেফারেন্সযুক্ত রয়েছে।

RUN apk add --no-cache --virtual .build-deps \
gcc \
freetype-dev \
musl-dev

RUN pip install --no-cache-dir <packages_that_require_gcc...> \

RUN apk del .build-deps

34
দ্রষ্টব্য, পৃথক RUN কমান্ডের মধ্যে ডেল থাকার ফলে চিত্রের আকার হ্রাস হবে না, কারণ মুছুন ফাইল সিস্টেমের একটি নতুন স্তরে চালিত।
স্কিপাইলট

উত্তর:


235

আপনি যদি ডকুমেন্টেশন দেখুন

  -t, --virtual NAME    Instead of adding all the packages to 'world', create a new 
                        virtual package with the listed dependencies and add that 
                        to 'world'; the actions of the command are easily reverted 
                        by deleting the virtual package

প্যাকেজ ইনস্টল করার পরে এর অর্থ কী, সেই প্যাকেজগুলি বিশ্ব প্যাকেজগুলিতে যুক্ত হয় না to এবং এই পরিবর্তনটি সহজেই ফিরে যেতে পারে। সুতরাং একটি প্রোগ্রাম সংকলন করার জন্য আমার যদি জিসিসি দরকার হয় তবে প্রোগ্রামটি সংকলিত হয়ে গেলে আমার আর জিসিসির দরকার নেই।

আমি ভার্চুয়াল প্যাকেজে জিসিসি এবং অন্যান্য প্রয়োজনীয় প্যাকেজ ইনস্টল করতে পারি এবং এর সমস্ত নির্ভরতা এবং সমস্ত কিছু এই ভার্চুয়াল প্যাকেজের নাম মুছে ফেলা যায়। নীচে ব্যবহারের একটি উদাহরণ দেওয়া আছে

apk add --virtual mypacks gcc vim
apk del mypacks

পরবর্তী কমান্ডটি প্রথম কমান্ডের সাথে ইনস্টল করা 18 টি প্যাকেজ মুছে ফেলবে।


1
এছাড়াও এটি উল্লেখ করার মতো যে ভার্চুয়াল প্যাকেজটির জন্য একটি অনন্য নাম ব্যবহার করা গুরুত্বপূর্ণ, বর্তমানে কনফিগার করা সংগ্রহস্থলগুলিতে বিদ্যমান নয়, অন্যথায় প্যাকেজ ইনস্টল করা সফল হয় তবে আপনার যা প্রয়োজন তা ইনস্টল করে না।
বাজেউজ

1
দ্রষ্টব্য: আপনাকে অবশ্যই এটি একটি আরএন কমান্ডে কার্যকর করতে হবে, অন্যথায় এটি পূর্ববর্তী ডকার চিত্র স্তর stackoverflow.com/a/49714913/1577357
জুলহিলমি জয়নুদিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.