كما يقول المستندات :
تحذير: الرجاء عدم إعادة توزيع كود التثبيت. سيتغير مع كل إصدار من المثبت. بدلا من ذلك ، يرجى ربط هذه الصفحة.
من المزعج استخدام رمز التثبيت المتوفر هناك في Dockerfile ، حيث أن التحقق SHA-384 سيصبح قديمًا قريبًا وسنحصل على رسالة حزينة Installer corrupt
كل مرة نحاول فيها بناء الحاوية.
اعتدت أن أحب التثبيت أحادي الخط ولكني أعلم أنه يحتوي على مشكلة الفساد.
إذن ، ما هي الإرشادات لاستخدامه على Dockerfile؟ هل يجب أن نستمر في استخدام التثبيت أحادي الخط أعلاه؟ هل يجب أن يكون على المستندات؟
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
أعتقد أنه من الأفضل لـ Docker استخدام إصدار ثابت معروف وتنزيله مباشرة.
على سبيل المثال:
wget https://getcomposer.org/download/1.1.3/composer.phar
# or if you want snapshot
wget https://getcomposer.org/composer.phar
أعلم أن هذا لا يوفر لك نفس الأمان الذي يوفره نص التثبيت.
هناك خيار آخر يتمثل في تثبيت composer.phar في المستودع الذي يحتوي أيضًا على Dockerfile ، ثم استخدام خطوة COPY لنسخه في الحاوية في وقت الإنشاء.
في حالة Docker ، يمكن أيضًا التحقق من ذلك عن طريق تسلسل الأوامر ، كما لو فشل أي منها في بيان RUN ، فإن بناء الصورة بالكامل سيفشل أيضًا:
RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
&& curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
&& php composer-setup.php -- --install-dir=/root/bin --filename=composer
من الشائع جدًا أن يكون لديك هذا للتحقق من صحة التوقيع ، راجع
التعليق الأكثر فائدة
https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md