منصوبے کے بارے میں

tailor، Azure Linux Image Customizer (IC) کے لیے ایک high-level، declarative front-end کے طور پر کام کرتی ہے۔ یہ low-level Docker commands کو ہاتھ سے لکھنے کی پیچیدگی کو حل کرتی ہے، جس سے ڈویلپرز کو چھوٹے، layered YAML files میں image sets کو بیان کرنے کی اجازت ملتی ہے۔ یہ ٹول base configurations کو per-axis fragments کے ساتھ merge کرتا ہے، matrices کو انفرادی build cells میں پھیلاتا ہے، اور IC container کو چلانے سے پہلے base images کو خودکار طور پر resolve کرتا ہے۔ اہم خصوصیات میں شامل ہیں: - **Declarative Configuration**: shared settings کے لیے `image.yaml` اور variations (جیسے architecture، variant) کے لیے `by-<axis>/<value>.yaml` fragments کا استعمال کرتا ہے۔ یہ ایک deterministic merge model استعمال کرتا ہے جہاں maps deep-merge ہوتے ہیں اور lists append ہوتے ہیں، جبکہ scalar conflicts کے لیے explicit `$set` directives کی ضرورت ہوتی ہے تاکہ silent overwrites سے بچا جا سکے۔ - **Automated Execution**: tailor IC کے لیے ضروری پیچیدہ `docker run` invocation کو سنبھالتی ہے، جس میں correct platform کی ترتیب، host paths کو `/host` namespace میں rewrite کرنا، privileged mounts کا انتظام، اور outputs کی توثیق شامل ہے۔ یہ `tailor.lock` اور `--locked` builds کے ذریعے reproducibility کو سپورٹ کرتی ہے۔ - **Flexible Base Images**: local files، OCI references، اور Azure Linux MCR shorthands کو سپورٹ کرتی ہے۔ یہ `inputs:` کے ذریعے ایک image کو دوسرے کے base کے طور پر استعمال کرنے کی اجازت دے کر builds کو chain کرنے کی بھی اجازت دیتی ہے۔ - **Workflow Tools**: scaffolding کے لیے `tailor init`، commands کو پیش دیکھنے کے لیے `--dry-run`، اور configs کو render کرنے کے لیے `export` فراہم کرتی ہے۔ اس میں sudo-free cleanup اور tools-dir guards جیسی حفاظتی خصوصیات شامل ہیں۔ یہ ٹول Linux x86_64 اور aarch64 کے لیے ایک static binary کے طور پر تقسیم کیا جاتا ہے، جس کے لیے runtime پر صرف Docker daemon access کی ضرورت ہوتی ہے۔