هغه کانټینرونه چې سمدلاسه د exec format error سره وتړل کیږي، غلط جبلت رابولي: وړتیا اضافه کول، وسیله نصبول، د تونل ترتیبات سمول۔ له دې څخه هیڅ یو ستونزه نه ترلاسه کوي۔ کرنل باینري په بشپړه توګه ونه توانیدله چل کړي، چې په کانټینر کې نږدې تل دا مانا لري چې عکس د کوربه څخه توپیر لرونکي CPU آرکیټکچر په نښه کوي۔ هر څه چې تاسو یې په لارښوونه، اعتبارنامو یا امتیازاتو کې بدلولی شئ، وروسته له دې پیښیږي چې یو پروګرام پیل شوی، او هیڅ پروګرام پیل شوی نه دی۔

د پیل پیغام چې د ترتیباتو غلطي ښکاري

د exec فارمټ ناکامي له لوډر څخه راځي، مخکې لدې چې اپلیکیشن یو هم ترتیب ولولي۔ له همدې امله دا د ترتیباتو خبرداری یا د تونل لاګ نه جوړوي، ځکه چې دوی لیکلو لپاره هیڅ ژوندی پروسه نشته۔ ناکامي هم خورا ژر ده، ډیری وخت مخکې لدې چې په کانټینر لاګ کې یوه کرښه هم ښکاره شي۔ هماغه لنډ پیغام ښکاره کیږي که باینري د بل آرکیټکچر لپاره وي، د بل عملیاتي سیسټم لپاره وي یا خرابه وي۔

د چلولو چاپیریال او آرکیټکچر د دقیق عکس حوالې سره یوځای ثبت کړئ، بیا وګورئ چې هغه حواله واقعیا څه وړاندې کوي۔ په Docker Desktop کې د کانټینر پلیټفارم د لپ ټاپ نه، بلکې د Linux مجازي ماشین پورې اړه لري، نو یوازې د کوربه آرکیټکچر ګمراه کولی شي۔ د دې حوالې لپاره د انډیکس ننوتلو لیست ولولئ، نه د هغې ټګ پاڼې بازارموندنه متن۔

د چلولو امر دمخه د عکس انډیکس ولولئ

کله چې یوه راجستر څو-پلیټفارمي حواله خپره کړي، ټګ یو انډیکس ته اشاره کوي، او هر ننوتل یو پلیټفارم د خپل ډایجیسټ سره نوموي۔ د تر بیاکتنې لاندې حواله وګورئ، نه ګاونډی ټګ، او انډیکس ولولئ پرځای لدې چې فرض کړئ څه لري۔

docker buildx imagetools inspect ghcr.io/example/vpn:1.4
docker image inspect --format '{{.Os}}/{{.Architecture}}' ghcr.io/example/vpn:1.4

لومړی امر هغه پلیټفارمونه لیست کوي چې حواله یې خپروي۔ دویم یې د هغه عکس پلیټفارم راپور ورکوي چې دمخه په محلي توګه شته، او هماغه به د چلولو چاپیریال چل کړي۔ یوازې یو ننوتل لرونکې حواله مانا دا ده چې هر کوربه ورته باینري ترلاسه کوي، او ټګ هغه ماشین سره مرسته نشي کولی چې هیڅکله ورته جوړ شوی نه دی۔

ټګونه یو ډول غوره کوي؛ دوی یې نه جوړوي

څو-پلیټفارمي انډیکس د چلولو چاپیریال ته اجازه ورکوي چې سمون لرونکي ننوتل غوره کړي، کوم چې واقعیا اسانه دی او ډیری وخت د لېږد وړتیا سره ګډوډ کیږي۔ ټاکنه لټون ده، ژباړه نه: که ډول نشته، د غوره کولو لپاره هیڅ نشته۔ نو هماغه ټګ په دوو کوربه وو دوه مختلف باینري رامنځته کولی شي، او په یو کوربه کې د کوم ګټور شي لامل نه کیږي۔

د ډایجیسټ له مخې پن کول ابهام لره کوي او د وروستي بیاکتنې امکان هم برابروي، ځکه چې ډایجیسټ هغه بایټونه دقیقا پیژني چې ازمویل شوي۔ هغه ډایجیسټ د ځای پرځای کولو ریکارډ سره ساتئ، پرځای لدې چې پر هغه ټګ تکیه وکړئ چې ناڅاپه اوسنی و۔

ایمولیشن یو ترتیب دی، د ژباړې پوړ نه

د ملاتړ شوي چلولو چاپیریال له لارې ایمولیشن کولی شي ځینې نه-اصلي کاروونکي-فضا کاري بارونه چل کړي، نو مطلق ادعا چې یو آرکیټکچر هیڅکله د بل عکس نشي چلولی غلطه ده۔ دا هم عمومي حل نه دی۔ ایمول شوې اجرا مختلف فعالیت ځانګړنې لري، او یوه کوچنۍ پروسه چې پیل کیږي د دې په اړه هیڅ نه وایي چې ایا د تونل کاري بار منظم ډول چلند کوي۔

د Docker څو-پلیټفارمي لارښود اصلي جوړښتونه، کراس-کمپایل او ایمولیشن د جلا ستراتیژیو په توګه ګڼي، او د انتخابونو لوستلو سمه لاره هماغه ده۔ یو یې په قصد غوره کړئ، او د برابرۍ فرض کولو پرځای د هغې لاندې VPN کاري بار ارزوئ۔

اجازې بله ستونزه حل کوي

د شبکې-ادارې وړتیا ورکول یا د TUN وسیله تیرول نشي کولی ناسم چلیدونکي فایل چل کړي۔ دا د چلولو اجازې دي چې یوه روانه پروسه یې کاروي؛ دوی هغه لوډر لپاره ناڅرګندې دي چې فایل یې دمخه رد کړی۔

برعکس هم هماغسې ریښتیا دی۔ اصلي باینري د امتیازاتو، وسیلو ته لاسرسي، resolver ادغام یا د بیا پیل تګلارې په اړه هیڅ نه ثابتوي چې تونل ورته اړتیا لري، نو هغه کانټینر چې پیل کیږي لا هم کار کوونکی کانټینر نه دی۔ لومړی د پلیټفارم تړون ټینګ کړئ، بیا د هغې مستند انتخابونو سره د چلولو تړون ته لاړ شئ۔

د عکس ډایجیسټ، ملاتړ شوی هدف او ترتیبات یوځای په هماغه ریکارډ کې وساتئ۔ د ټګ هغه تازه کول چې آرکیټکچر په خاموشۍ بدلوي نیول یې اسانه دي کله چې پخوانی ډایجیسټ لیکل شوی وي، نه کله چې یوازینی نښه یوه پیژندل شوې غلطي او د ډیبګ لپاره تیر شوی نوی ماسپښین وي۔

اړوندې مقالې