exec format error errorearekin berehala irteten diren edukiontziek sen okerra pizten dute: gaitasun bat gehitu, gailu bat muntatu, tunelaren konfigurazioa editatu. Horietako batek ere ez dio arazoari heltzen. Nukleoak ezin izan zuen bitarra batere exekutatu, eta horrek edukiontzi batean ia beti esan nahi du irudiak hostaren CPU arkitektura ezberdin bat duela helburu. Bideratzean, kredentzialetan edo pribilegioetan alda zenukeen guztia programa bat hasi ondoren gertatzen da, eta ez da programa bat ere hasi.

Konfigurazio-errore baten itxura duen hasierako mezua

Exec formatuko hutsegitea kargatzailetik dator, aplikazioak ezarpen bakar bat ere irakurri aurretik. Horregatik ez du konfigurazio-abisurik ez tunel-erregistrorik sortzen, ez baitago horiek idatziko dituen prozesu bizirik. Hutsegitea oso azkarra da gainera, askotan edukiontziaren erregistroan lerro bat ere agertu aurretik. Mezu labur bera agertzen da bitarra beste arkitektura baterako, beste sistema eragile baterako edo hondatuta badago ere.

Erregistratu exekuzio-ingurunea eta arkitektura irudi-erreferentzia zehatzarekin batera, eta gero egiaztatu erreferentzia horrek benetan zer eskaintzen duen. Docker Desktop-en edukiontziaren plataforma Linux makina birtualarena da, ez eramangarriarena, beraz hostaren arkitektura soilak engainatu dezake. Irakurri erreferentzia honen indize-sarrerak, bere etiketa-orriko marketin-testua beharrean.

Irakurri irudiaren indizea exekuzio-komandoa baino lehen

Erregistro batek plataforma anitzeko erreferentzia bat argitaratzen duenean, etiketak indize bat seinalatzen du, eta sarrera bakoitzak bere digest propioa duen plataforma bat izendatzen du. Aztertu aztergai dagoen erreferentzia, ez alboko etiketa bat, eta irakurri indizea, zer duen suposatu beharrean.

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

Lehen komandoak erreferentziak argitaratzen dituen plataformak zerrendatzen ditu. Bigarrenak dagoeneko bertan dagoen irudiaren plataforma jakinarazten du, eta horixe exekutatuko du exekuzio-inguruneak. Sarrera bakarra duen erreferentzia batek esan nahi du host bakoitzak bitar bera jasotzen duela, eta etiketak ezin dio inoiz eraiki ez zen makina bati lagundu.

Etiketek aldaera bat hautatzen dute; ez dute sortzen

Plataforma anitzeko indize batek exekuzio-inguruneari bat datorren sarrera hautatzeko aukera ematen dio, benetan erosoa dena eta maiz eramangarritasunarekin nahasten dena. Hautaketa bilaketa bat da, ez itzulpen bat: aldaera ez badago, ez dago zer hautatu. Beraz, etiketa berak bi hostetan bi bitar ezberdin eman ditzake, eta host batean ez du ezer erabilgarririk ematen.

Digest bidez finkatzeak anbiguotasuna kentzen du eta geroagoko berrikuspena ere ahalbidetzen du, digestak probatutako byteak zehazki identifikatzen baititu. Gorde digest hori hedapen-erregistroarekin batera, unean indarrean zegoen etiketari fidatu beharrean.

Emulazioa akordio bat da, ez itzulpen-geruza bat

Onartutako exekuzio-ingurune baten bidezko emulazioak erabiltzaile-espazioko karga ez-natibo batzuk exekuta ditzake, beraz arkitektura batek beste baten irudia inoiz exekutatu ezin duelako baieztapen absolutua okerra da. Ez da irtenbide orokor bat ere. Exekuzio emulatuak errendimendu-karakteristika ezberdinak ditu, eta abiatzen den prozesu hutsal batek ez dizu ezer esaten tunel-karga bat onargarri portatzen den ala ez.

Dockerren plataforma anitzeko gidak eraikuntza natiboak, konpilazio gurutzatua eta emulazioa estrategia bereizitzat hartzen ditu, eta hori da aukerak irakurtzeko modu egokia. Hautatu bat nahita, eta egokitu VPN karga haren pean, baliokidetasuna suposatu beharrean.

Baimenek beste arazo bat konpontzen dute

Sare-administrazio gaitasun bat emateak edo TUN gailu bat pasatzeak ezin du exekutagarri bateraezin bat exekutarazi. Exekuzio-baimenak dira, exekutatzen ari den prozesu batek erabiltzen dituenak; ikusezinak dira fitxategia dagoeneko ukatu duen kargatzaile batentzat.

Alderantzizkoa ere egia da. Bitar natibo batek ez du ezer frogatzen pribilegioei, gailuen sarbideari, resolver integrazioari edo tunel batek behar duen berrabiarazte-politikari buruz, beraz abiatzen den edukiontzi bat oraindik ez da funtzionatzen duen edukiontzi bat. Ezarri lehenik plataforma-kontratua, eta gero joan exekuzio-kontratura haren dokumentatutako aukerekin.

Eduki ezazu irudiaren digest-a, onartutako helburua eta konfigurazioa elkarrekin erregistro berean. Arkitektura isilean aldatzen duen etiketa-eguneratze bat errazago harrapatzen da aurreko digest-a idatzita dagoenean, sintoma bakarra errore ezagun bat eta arazketari emandako arratsalde berri bat direnean baino.

Erlazionatutako artikuluak