منذ فترة طويلة لم أفهم حقًا ما هو pups، ولا يزال الأمر محيرًا بعض الشيء بالنسبة لي بصراحة.
![]()
أدرك أن صور discourse Docker تحتاج إلى تكوين. وبدلاً من القيام بذلك عبر سكريبتات bash، يتم ذلك عبر ملفات yml (التي تُنتج سكريبتات bash) والتي يمكن العثور عليها في: https://github.com/discourse/discourse_docker/tree/master/samples
إطلاق حاويات Docker والتكوين عبر pups متداخلان في سكريبت التشغيل هنا.
السطر الذي ربطت به يثير اهتمامي بشكل خاص. يبدو أنه يجعل pups يعمل داخل حاوية Docker. لقد حاولت تشغيل ملف test.yml عبر pups، ومن الواضح أنه لم يتم تشغيله داخل حاوية Docker. لقد أنتج فقط سكريبت bash (أوامر bash؟) تم تنفيذه فورًا.
سؤالي هو: كيف أجعل pups يعمل داخل حاوية Docker للتطوير؟ هذا السطر الذي أشرت إليه طويل جدًا، ويبدو أن بعض أجزائه غير ضرورية لحالتي. ربما يمكن لأحد تقديم مثال سهل على كيفية دمج مخرجات pups مع حاوية Docker.
أريد ببساطة إضافة أمر pups مشابه للأمر الموجود في سكريبت التشغيل، في نهاية سكريبت boot_dev (أو تشغيله كسكريبت منفصل بعد سكريبت boot_dev).
معلومات خلفية:
السبب وراء القيام بذلك → أريد إضافة عملية طويلة الأمد إلى runit. أشار إليّ @merefield إلى إضافة Frotz الخاصة به كمثال على كيفية القيام بذلك.
السؤال هو: كيف أفعل ذلك محليًا لاختبار مدخلات pups؟ كما أفهم، فإن مثيل Docker للتطوير لا يتم تكوينه عبر ملف yml وpups. مدخلات pups الخاصة بإضافة Frotz تتعلق بملف yml الخاص بالخادم أثناء تثبيت الإضافة، لذا فأنا محير حقًا حول كيفية القيام بذلك محليًا.
حسنًا، شكرًا لك ![]()
تعديل:
حسنًا، وجدت هذه الأنواع من الأسطر.
لذا فهذا يعني أن pups يحتاج فقط إلى العمل داخل الحاوية. لا أعرف لماذا اعتقدت أنه يُستخدم فقط لتوليد الأوامر. لقد رأيت هذه الجملة في ملف readme:
pups هي مكتبة صغيرة تتيح لك أتمتة عملية إنشاء صور Unix.
لم يكن ذلك منطقيًا بالنسبة لي، لذا طبعًا سيطر عليّ اللاوعي.
يُستخدم الوسيطة
--gen-docker-run-argsلجعل مخرجات pups تكون بتنسيقdocker run <مخرجات الوسيطة>.
بشكل ما أدى ذلك إلى تصوري لـ pups على أنه شيء يحول ملفات yml إلى مخرجات أوامر bash. مثل مترجم من yml إلى bash. ولكن في الواقع، هو أكثر من مجرد مُفسر لملفات yml. لا يقوم فقط بإنشاء الأوامر، بل ينفذها فورًا.