أقوم حاليًا بتخصيص معالج post_processor الخاص بي مثل هذا:
"output": "boxes/rhel-server-6.5-x64-{{.Provider}}-{{.BuildName}}_{{timestamp}}.box"
سيكون من الجيد أن يكون لديك {{git_hash}} بدلاً من الطابع الزمني. إذا كانت هناك طريقة أخرى للقيام بذلك ، بخلاف استدعاء الوظيفة في Packer ، فأعتقد أنني لست على دراية كافية بكيفية القيام بذلك.
أرى أين يمكن القيام بذلك: packer / config_template.go.
اعتقدت أن معظم الناس سيجدون هذا مفيدًا.
على سبيل المثال: إذا أردنا معرفة التكوين الكامل لمكدس الدمى الخاص بنا ، فيجب أن نعرف أيضًا مربع التعبئة الذي تم بناء كل عقدة عليه ، والطابع الزمني لا يمنحنا ذلك. إنه لأمر جيد أن يكون لديك للتدقيق أو حتى أكثر استراتيجيات التعافي من الكوارث سيئة.
أفكار؟ البدائل؟
_تعديل_:
هناك أيضًا حالة استخدام أداة التجميع ضد شجرة بوابة قذرة ، حيث لن تكون التجزئة الناتجة دقيقة. ربما تريد أن تعيد تجزئة git "dirty_tree" في هذه الحالة ..
جلالة الملك. أعتقد أن إضافة وظائف خاصة بـ git أمر صعب ، لأنه يفتح الباب أمام SCMs الأخرى التي قد لا نمتلك نفس المستوى من الخبرة بشأنها. هل هناك سبب يمنعك من استخدام user-var لهذا مثل:
packer -var "git_sha=`git rev-parse HEAD`"
ثم قم بتعريف المتغير:
{
"variables": {
"git_sha": "none"
}
}
يقدم {{git_hash}}
بعض الافتراضات ، أهمها - لقد قمت بتثبيت Git. لا أعتقد أن جميع مستخدمينا يستخدمون Git ، لذا قد يكون من الصعب العثور على UX الصحيح عندما لا يكون git مثبتًا (هل نخطئ ، نستبدل بسلسلة فارغة ، إلخ).
متفق عليه مع sethvargo
نصيحة صغيرة أخرى للأشخاص الذين يقرؤون هذا: قد ترغب في استخدام الوسيطة --short
لتحليل rev:
packer -var "git_sha=`git rev-parse --short HEAD`"
للحصول على قيمة مثل 21feafa
بدلاً من 21feafa9a86a45b3008d133f0803d2ac2087c63f
.
التعليق الأكثر فائدة
جلالة الملك. أعتقد أن إضافة وظائف خاصة بـ git أمر صعب ، لأنه يفتح الباب أمام SCMs الأخرى التي قد لا نمتلك نفس المستوى من الخبرة بشأنها. هل هناك سبب يمنعك من استخدام user-var لهذا مثل:
ثم قم بتعريف المتغير:
يقدم
{{git_hash}}
بعض الافتراضات ، أهمها - لقد قمت بتثبيت Git. لا أعتقد أن جميع مستخدمينا يستخدمون Git ، لذا قد يكون من الصعب العثور على UX الصحيح عندما لا يكون git مثبتًا (هل نخطئ ، نستبدل بسلسلة فارغة ، إلخ).