Konteneroj, kiuj tuj ĉesas kun exec format error, instigas la malĝustan instinkton: aldoni kapablon, munti aparaton, redakti la tunelan agordon. Nenio el tio atingas la problemon. La kerno tute ne povis plenumi la binaran dosieron, kio en kontenero preskaŭ ĉiam signifas, ke la bildo celas alian CPU-arkitekturon ol tiu de la gastiganto. Ĉio, kion vi povus ŝanĝi pri enkursigado, akreditaĵoj aŭ privilegioj, okazas post kiam programo ekfunkciis, kaj neniu programo ekfunkciis.

La startmesaĝo, kiu aspektas kiel agorda eraro

Exec-formata malsukceso venas de la ŝargilo, antaŭ ol la aplikaĵo legas eĉ unu agordon. Tial ĝi produktas neniujn agordajn avertojn kaj neniun tunelan protokolon, ĉar ne ekzistas viva procezo por skribi ilin. La malsukceso ankaŭ estas rimarkinde rapida, ofte antaŭ ol eĉ unu linio aperas en la kontenera protokolo. La sama mallonga mesaĝo aperas ĉu la binara dosiero estas por alia arkitekturo, por alia operaciumo aŭ difektita.

Notu la rulan medion kaj arkitekturon kune kun la preciza bilda referenco, poste kontrolu, kion tiu referenco efektive proponas. En Docker Desktop la kontenera platformo apartenas al la Linuksa virtuala maŝino, ne al la tekkomputilo, do la gastiganta arkitekturo sola povas misgvidi. Legu la indeksajn enskribojn por ĉi tiu referenco anstataŭ la merkatikan tekston sur ĝia etikeda paĝo.

Legu la bildan indekson antaŭ la rulkomando

Kiam registro publikigas plurplatforman referencon, la etikedo montras al indekso, kaj ĉiu enskribo nomas platformon kun sia propra resumo. Esploru la referencon sub konsidero, ne najbaran etikedon, kaj legu la indekson anstataŭ supozi, kion ĝi enhavas.

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

La unua komando listigas la platformojn, kiujn la referenco publikigas. La dua raportas la platformon de la bildo jam ĉeesta loke, kaj ĝuste tion rulos la rula medio. Referenco kun nur unu enskribo signifas, ke ĉiu gastiganto ricevas la saman binaran dosieron, kaj la etikedo ne povas helpi maŝinon, por kiu ĝi neniam estis konstruita.

Etikedoj elektas variaĵon; ili ne kreas ĝin

Plurplatforma indekso permesas al la rula medio elekti kongruan enskribon, kio estas vere oportuna kaj ofte erare prenata kiel porteblo. La elekto estas serĉo, ne traduko: se la variaĵo mankas, estas nenio elektebla. La sama etikedo do povas sur du gastigantoj konduki al du malsamaj binaraj dosieroj, kaj sur unu gastiganto ĝi kondukas al nenio uzebla.

Fiksado per resumo forigas la ambiguecon kaj ankaŭ ebligas postan revizion, ĉar la resumo identigas precize la bajtojn, kiuj estis testitaj. Konservu tiun resumon kune kun la efektiviga registro anstataŭ fidi la etikedon, kiu hazarde estis aktuala.

Emulado estas aranĝo, ne traduka tavolo

Emulado per subtenata rula medio povas ruli iujn neoriginajn uzantspacajn ŝarĝojn, do la absoluta aserto, ke unu arkitekturo neniam povas ruli la bildon de alia, estas malĝusta. Ĝi ankaŭ ne estas ĝenerala solvo. Emulita plenumo havas malsamajn agadkarakterizojn, kaj sensignifa procezo, kiu startas, diras al vi nenion pri tio, ĉu tunela ŝarĝo kondutas akcepteble.

La plurplatforma gvidilo de Docker traktas originajn konstruojn, krucan kompiladon kaj emuladon kiel apartajn strategiojn, kaj tio estas la ĝusta maniero legi la eblojn. Elektu unu konscie, kaj kvalifiku la VPN-ŝarĝon sub ĝi anstataŭ supozi ekvivalentecon.

Permesoj solvas alian problemon

Doni retadministran kapablon aŭ trapasi TUN-aparaton ne povas igi malkongruan plenumeblan dosieron ruliĝi. Tiuj estas rulpermesoj, kiujn uzas kuranta procezo; ili estas nevideblaj al ŝargilo, kiu jam rifuzis la dosieron.

La malo same veras. Origina binara dosiero pruvas nenion pri privilegioj, aparata aliro, integriĝo de solvilo aŭ la restartpolitiko, kiun tunelo bezonas, do kontenero, kiu startas, ankoraŭ ne estas kontenero, kiu funkcias. Starigu unue la platforman kontrakton, poste transiru al la rula kontrakto kun ĝiaj dokumentitaj ebloj.

Konservu la bildan resumon, la subtenatan celon kaj la agordon kune en la sama registro. Etikeda ĝisdatigo, kiu silente ŝanĝas la arkitekturon, estas pli facile kaptebla kiam la antaŭa resumo estas skribita, ol kiam la sola simptomo estas konata eraro kaj freŝa posttagmezo de sencimigado.

Rilataj artikoloj